settleAccountsEdit.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. <template>
  2. <div class="borderless">
  3. <div class="customer-head">
  4. <div class="customer-back">
  5. <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
  6. @click="backToList">返回列表
  7. </el-button>
  8. </div>
  9. <el-button
  10. class="el-button--small-yh add-customer-btn"
  11. type="primary"
  12. @click=""
  13. >{{form.id?'确认修改':'确认新增'}}
  14. </el-button>
  15. </div>
  16. <div style="margin-top: 60px">
  17. <basic-container>
  18. <el-form :model="form" ref="form" label-width="130px">
  19. <el-row>
  20. <el-col v-for="(item, index) in basicData.column" :span="item.span?item.span:6" :key="index">
  21. <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
  22. <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
  23. <el-select v-else-if="item.type === 'select'" style="width: 100%" size="small" placeholder="请选择" clearable filterable></el-select>
  24. <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off" placeholder="请输入"></el-input>
  25. </el-form-item>
  26. </el-col>
  27. </el-row>
  28. </el-form>
  29. </basic-container>
  30. </div>
  31. </div>
  32. </template>
  33. <script>
  34. import option from "./configuration/settleAccounts.json";
  35. export default {
  36. data() {
  37. return {
  38. loading: false,
  39. form:{},
  40. data: [],
  41. //顶部from数据
  42. basicData:
  43. {
  44. column: [
  45. {
  46. label: '服务项目',
  47. prop: 'prop1',
  48. rules: [
  49. {
  50. required: false,
  51. message: ' ',
  52. trigger: 'blur'
  53. }
  54. ]
  55. }, {
  56. label: '收费建议',
  57. prop: 'prop2',
  58. rules: [
  59. {
  60. required: true,
  61. message: ' ',
  62. trigger: 'blur'
  63. }
  64. ]
  65. }, {
  66. label: '计价单位',
  67. prop: 'prop3',
  68. data: [],
  69. rules: [
  70. {
  71. required: true,
  72. message: ' ',
  73. trigger: 'blur'
  74. }
  75. ]
  76. }, {
  77. label: '数量',
  78. prop: 'prop3',
  79. data: [],
  80. rules: [
  81. {
  82. required: true,
  83. message: ' ',
  84. trigger: 'blur'
  85. }
  86. ]
  87. }, {
  88. label: '报价',
  89. prop: 'prop4',
  90. rules: [
  91. {
  92. required: true,
  93. message: ' ',
  94. trigger: 'blur'
  95. }
  96. ]
  97. }, {
  98. label: '合计金额',
  99. prop: 'prop5',
  100. rules: [
  101. {
  102. required: true,
  103. message: ' ',
  104. trigger: 'blur'
  105. }
  106. ]
  107. }, {
  108. label: '频率',
  109. prop: 'prop6',
  110. data: [],
  111. rules: [
  112. {
  113. required: true,
  114. message: ' ',
  115. trigger: 'blur'
  116. }
  117. ]
  118. }, {
  119. label: '提醒日',
  120. prop: 'prop7',
  121. data: [],
  122. rules: [
  123. {
  124. required: true,
  125. message: ' ',
  126. trigger: 'blur'
  127. }
  128. ]
  129. }, {
  130. label: '备注',
  131. prop: 'prop8',
  132. data: [],
  133. rules: [
  134. {
  135. required: true,
  136. message: ' ',
  137. trigger: 'blur'
  138. }
  139. ]
  140. }, {
  141. label: '任务部门',
  142. prop: 'prop8',
  143. rules: [
  144. {
  145. required: true,
  146. message: ' ',
  147. trigger: 'blur'
  148. }
  149. ]
  150. },
  151. {
  152. label: '承做人',
  153. prop: 'prop9',
  154. rules: [
  155. {
  156. required: true,
  157. message: ' ',
  158. trigger: 'blur'
  159. }
  160. ]
  161. },
  162. {
  163. label: '开始日期',
  164. prop: 'prop10',
  165. rules: [
  166. {
  167. required: true,
  168. message: ' ',
  169. trigger: 'blur'
  170. }
  171. ]
  172. },
  173. {
  174. label: '需求完成日期',
  175. prop: 'prop11',
  176. type:'datetime',
  177. rules: [
  178. {
  179. required: true,
  180. message: ' ',
  181. trigger: 'blur'
  182. }
  183. ]
  184. },
  185. {
  186. label: '录入人',
  187. prop: 'prop12',
  188. type:'datetime',
  189. rules: [
  190. {
  191. required: true,
  192. message: ' ',
  193. trigger: 'blur'
  194. }
  195. ]
  196. },
  197. {
  198. label: '录入时间',
  199. prop: 'prop13',
  200. type:'select',
  201. rules: [
  202. {
  203. required: true,
  204. message: ' ',
  205. trigger: 'blur'
  206. }
  207. ]
  208. },
  209. {
  210. label: '最新修改人',
  211. prop: 'prop8',
  212. rules: [
  213. {
  214. required: true,
  215. message: ' ',
  216. trigger: 'blur'
  217. }
  218. ]
  219. }
  220. ],
  221. },
  222. page: {
  223. currentPage: 1,
  224. total: 0,
  225. pageSize: 10
  226. }
  227. };
  228. },
  229. methods: {
  230. //删除列表后面的删除按钮触发触发(row, index, done)
  231. rowDel(row, index, done) {
  232. this.$confirm("确定将选择数据删除?", {
  233. confirmButtonText: "确定",
  234. cancelButtonText: "取消",
  235. type: "warning"
  236. }).then(() => {
  237. this.$message({
  238. type: "success",
  239. message: "操作成功!"
  240. });
  241. // 数据回调进行刷新
  242. done(row);
  243. });
  244. },
  245. //修改时的修改按钮点击触发
  246. rowUpdate(row, index, done, loading) {
  247. setTimeout(() => {
  248. this.$message.success("修改成功");
  249. loading();
  250. done();
  251. }, 1000);
  252. },
  253. //新增修改时保存触发
  254. rowSave(row, done, loading) {
  255. setTimeout(() => {
  256. this.$message.success("保存成功");
  257. loading();
  258. done();
  259. }, 1000);
  260. },
  261. getList() {
  262. this.loading = true;
  263. setTimeout(() => {
  264. this.loading = false;
  265. this.data = [
  266. {
  267. prop1: "食品许可",
  268. prop2: "500",
  269. prop3: "次",
  270. prop4: "1",
  271. prop5: "1500",
  272. prop6: "1500",
  273. prop7: "年",
  274. prop8: "202202-1-1",
  275. prop9: "效率高",
  276. prop10: "商务部",
  277. prop11: "老周",
  278. prop12: "2021-1-1",
  279. prop13: "2021-1-1",
  280. prop14: "LOL",
  281. prop15: "2021-1-1",
  282. prop16: "LOL",
  283. prop17: "2021-1-1"
  284. }
  285. ];
  286. this.page.total = 1;
  287. }, 1000);
  288. },
  289. searchChange(params, done) {
  290. this.getList(this.page, params);
  291. done();
  292. },
  293. sizeChange(val) {
  294. this.page.pageSize = val;
  295. this.getList();
  296. },
  297. currentChange(val) {
  298. this.page.currentPage = val;
  299. this.getList();
  300. },
  301. refreshChange() {
  302. this.page.currentPage = 1;
  303. this.getList();
  304. },
  305. cellDblclick(row, column, cell, event) {
  306. console.log(row, column, cell, event);
  307. this.$refs.crud.rowEdit(row);
  308. },
  309. saveColumn(row, column) {
  310. console.log(row, column);
  311. },
  312. //返回主营项目列表
  313. backToList(){
  314. this.$router.$avueRouter.closeTag();
  315. this.$router.push({
  316. path: '/workManagement/receipt/settleAccounts',
  317. query: {}
  318. });
  319. }
  320. }
  321. };
  322. </script>
  323. <style scoped lang="scss">
  324. .customer-head {
  325. position: fixed;
  326. top: 105px;
  327. width: 100%;
  328. margin-left: -10px;
  329. height: 62px;
  330. background: #ffffff;
  331. box-shadow: 0 4px 12px 0px rgba(232, 232, 235, 1);
  332. z-index: 999;
  333. }
  334. .customer-back {
  335. cursor: pointer;
  336. line-height: 62px;
  337. font-size: 16px;
  338. color: #323233;
  339. font-weight: 400;
  340. }
  341. .add-customer-btn {
  342. position: fixed;
  343. right: 36px;
  344. top: 115px;
  345. }
  346. </style>