settleAccounts.vue 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. <template>
  2. <div>
  3. <basic-container >
  4. <el-form :model="form" ref="form" label-width="130px">
  5. <el-row>
  6. <el-col v-for="(item, index) in basicData.column" :span="item.span?item.span:8" :key="index">
  7. <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
  8. <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"/>
  9. <el-select v-else-if="item.type === 'select'" style="width: 100%" size="small" placeholder="请选择" clearable filterable></el-select>
  10. <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off" placeholder="请输入"></el-input>
  11. </el-form-item>
  12. </el-col>
  13. </el-row>
  14. </el-form>
  15. </basic-container>
  16. <basic-container>
  17. <avue-crud :option="option"
  18. :data="dataList"
  19. ref="crud"
  20. v-model="form"
  21. :page.sync="page"
  22. @row-del="rowDel"
  23. @row-update="rowUpdate"
  24. @row-save="rowSave"
  25. @search-change="searchChange"
  26. @search-reset="searchReset"
  27. @selection-change="selectionChange"
  28. @current-change="currentChange"
  29. @size-change="sizeChange"
  30. @refresh-change="refreshChange"
  31. @on-load="onLoad">
  32. <template slot="menuLeft">
  33. <el-button type="primary"
  34. size="small"
  35. icon="el-icon-upload2"
  36. plain
  37. @click="handleDelete">导 出
  38. </el-button>
  39. <el-button type="primary"
  40. size="small"
  41. icon="el-icon-upload2"
  42. plain
  43. @click="handleDelete">打 印
  44. </el-button>
  45. <el-button type="primary"
  46. size="small"
  47. icon="el-icon-upload2"
  48. plain
  49. @click="handleDelete">请 核
  50. </el-button>
  51. </template>
  52. <template slot-scope="scope" slot="menu">
  53. <el-button
  54. type="text"
  55. icon="el-icon-edit"
  56. size="small"
  57. @click.stop="rowDel(scope.row,scope.index)"
  58. >移除
  59. </el-button>
  60. </template>
  61. </avue-crud>
  62. </basic-container>
  63. </div>
  64. </template>
  65. <script>
  66. import option from "./configuration/settleAccounts.json";
  67. import {customerList, typeSave,detail,deleteDetails} from "@/api/basicData/customerCategory"
  68. export default {
  69. name: "customerInformation",
  70. data() {
  71. return {
  72. form: {},
  73. option: option,
  74. parentId:0,
  75. dataList: [],
  76. page: {
  77. pageSize: 10,
  78. pagerCount: 5,
  79. total: 0,
  80. },
  81. query:{},
  82. //顶部from数据
  83. basicData: {
  84. column: [
  85. {
  86. label: '代码',
  87. prop: 'orderNo',
  88. rules: [
  89. {
  90. required: false,
  91. message: ' ',
  92. trigger: 'blur'
  93. }
  94. ]
  95. }, {
  96. label: '项目名称',
  97. prop: 'orderNo',
  98. rules: [
  99. {
  100. required: true,
  101. message: ' ',
  102. trigger: 'blur'
  103. }
  104. ]
  105. }, {
  106. label: '客户名称',
  107. prop: 'orderNo',
  108. data: [],
  109. rules: [
  110. {
  111. required: true,
  112. message: ' ',
  113. trigger: 'blur'
  114. }
  115. ]
  116. }, {
  117. label: '责任人',
  118. prop: 'orderNo',
  119. data: [],
  120. rules: [
  121. {
  122. required: true,
  123. message: ' ',
  124. trigger: 'blur'
  125. }
  126. ]
  127. }, {
  128. label: '电话',
  129. prop: 'orderNo',
  130. rules: [
  131. {
  132. required: true,
  133. message: ' ',
  134. trigger: 'blur'
  135. }
  136. ]
  137. }, {
  138. label: '预收金额',
  139. prop: 'orderNo',
  140. rules: [
  141. {
  142. required: true,
  143. message: ' ',
  144. trigger: 'blur'
  145. }
  146. ]
  147. }, {
  148. label: '开始日期',
  149. prop: 'orderNo',
  150. type:'datetime',
  151. data: [],
  152. rules: [
  153. {
  154. required: true,
  155. message: ' ',
  156. trigger: 'blur'
  157. }
  158. ]
  159. }, {
  160. label: '结束日期',
  161. prop: 'orderNo',
  162. type:'datetime',
  163. data: [],
  164. rules: [
  165. {
  166. required: true,
  167. message: ' ',
  168. trigger: 'blur'
  169. }
  170. ]
  171. }, {
  172. label: '收款方式',
  173. prop: 'orderNo',
  174. type:'select',
  175. data: [],
  176. rules: [
  177. {
  178. required: true,
  179. message: ' ',
  180. trigger: 'blur'
  181. }
  182. ]
  183. }, {
  184. label: '备注',
  185. prop: 'orderNo',
  186. rules: [
  187. {
  188. required: true,
  189. message: ' ',
  190. trigger: 'blur'
  191. }
  192. ]
  193. }
  194. ],
  195. },
  196. }
  197. },
  198. created() {
  199. },
  200. methods: {
  201. //删除列表后面的删除按钮触发触发(row, index, done)
  202. rowDel(row, index, done) {
  203. this.$confirm("确定将选择数据删除?", {
  204. confirmButtonText: "确定",
  205. cancelButtonText: "取消",
  206. type: "warning"
  207. }).then(() => {
  208. this.$message({
  209. type: "success",
  210. message: "操作成功!"
  211. });
  212. // 数据回调进行刷新
  213. done(row);
  214. });
  215. },
  216. //修改时的修改按钮点击触发
  217. rowUpdate(row, index, done, loading) {
  218. this.$message({
  219. type: "success",
  220. message: "操作成功!"
  221. });
  222. done(row);
  223. },
  224. //新增修改时保存触发
  225. rowSave(row, done, loading) {
  226. setTimeout(() => {
  227. this.$message.success("保存成功");
  228. loading();
  229. done();
  230. }, 1000);
  231. },
  232. //新增子项触发
  233. handleAdd(row) {
  234. this.parentId = row.id;
  235. const column = this.findObject(this.option.column, "parentId");
  236. column.value = row.id;
  237. column.addDisabled = true;
  238. this.$refs.crud.rowAdd();
  239. },
  240. //点击搜索按钮触发
  241. searchChange(params, done) {
  242. this.query = params;
  243. this.page.currentPage = 1;
  244. params.parentId = 0
  245. this.onLoad(this.page, params);
  246. done()
  247. },
  248. searchReset() {
  249. console.log('1')
  250. },
  251. selectionChange() {
  252. console.log('1')
  253. },
  254. currentChange() {
  255. console.log('1')
  256. },
  257. sizeChange() {
  258. console.log('1')
  259. },
  260. refreshChange() {
  261. console.log('1')
  262. },
  263. onLoad(page, params = {}) {
  264. const {createTimeA} = this.query;
  265. let values = {
  266. ...params,
  267. size:this.page.pageSize,
  268. current:this.page.currentPage
  269. };
  270. if (createTimeA) {
  271. values = {
  272. ...params,
  273. createTime: createTimeA[0] + ' 00:00:00',
  274. endTime: createTimeA[1] + ' 23:59:59',
  275. ...this.query,
  276. size:this.page.pageSize,
  277. current:this.page.currentPage
  278. };
  279. values.createTimeA = null;
  280. }
  281. values.parentId = 0
  282. customerList(values).then(res => {
  283. this.dataList = [
  284. {
  285. fwxm: "食品许可",
  286. sfjy: "5000",
  287. jjdw: "次",
  288. sl:"12",
  289. bj: "3000",
  290. hjje: "6000",
  291. qesf: "8000",
  292. hejijin:"1500",
  293. querenshou:"300",
  294. pinlv:"年",
  295. tixingri:"2022-11-30",
  296. beizhu:"132",
  297. renwubu:"商务部",
  298. cnegzuoren:"小明",
  299. },
  300. {
  301. fwxm: "食品许可",
  302. sfjy: "5000",
  303. jjdw: "次",
  304. sl:"12",
  305. bj: "3000",
  306. hjje: "6000",
  307. qesf: "8000",
  308. hejijin:"1500",
  309. querenshou:"300",
  310. pinlv:"年",
  311. tixingri:"2022-11-30",
  312. beizhu:"132",
  313. renwubu:"商务部",
  314. cnegzuoren:"小明",
  315. }
  316. ];
  317. this.page.total = 1;
  318. })
  319. },
  320. }
  321. }
  322. </script>
  323. <style scoped>
  324. </style>