detailsPageEdit.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. <template>
  2. <div class="borderless">
  3. <div class="customer-head">
  4. <div class="customer-back">
  5. <!-- <i class="back-icon el-icon-arrow-left"></i><i style="font-style:normal">返回管理列表</i>-->
  6. <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
  7. @click="backToList">返回列表
  8. </el-button>
  9. </div>
  10. <el-button
  11. class="el-button--small-yh add-customer-btn"
  12. type="primary"
  13. :disabled="disabled"
  14. @click="editCustomer"
  15. >{{ form.id ? '确认修改' : '确认新增' }}
  16. </el-button>
  17. </div>
  18. <div style="margin-top: 60px">
  19. <el-form :model="form" ref="form" label-width="130px" class="demo-ruleForm">
  20. <containerTitle title="基础信息"></containerTitle>
  21. <basic-container style="margin-bottom: 10px">
  22. <el-row>
  23. <el-col v-for="(item,index) in basicData.column" :key="index" :span="item.span?item.span:8">
  24. <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
  25. <!-- <avue-input-tree v-if="item.prop === 'corpsTypeId'" leaf-only multiple :props="{label:'title'}"v-model="form[item.prop]" placeholder="请选择内容" type="tree" :dic="dic"/>-->
  26. <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"/>
  27. <el-select v-else-if="item.type === 'select'" style="width: 100%" size="small" placeholder="请选择" clearable filterable></el-select>
  28. <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
  29. </el-form-item>
  30. </el-col>
  31. </el-row>
  32. </basic-container>
  33. <containerTitle title="收货明细"></containerTitle>
  34. <basic-container style="margin-bottom: 10px">
  35. <avue-crud
  36. :option="customerContact"
  37. v-model="contactsForm"
  38. :data="contactsData"
  39. ref="crudContact"
  40. @row-save="rowSave"
  41. @row-click="handleRowClick"
  42. @row-update="rowUpdate"
  43. @row-del="rowDel">
  44. <template slot="code" slot-scope="{row,index}">
  45. </template>
  46. <template slot-scope="{row,index}" slot="menu">
  47. <el-button
  48. type="text"
  49. size="small"
  50. @click="rowCell(row,index)"
  51. >{{ row.$cellEdit ? '保存' : '修改' }}
  52. </el-button>
  53. </template>
  54. </avue-crud>
  55. </basic-container>
  56. </el-form>
  57. </div>
  58. </div>
  59. </template>
  60. <script>
  61. import customerContact from "./config/customerContact.json"
  62. export default {
  63. name: "detailsPageEdit",
  64. data() {
  65. return {
  66. form: {},
  67. disabled: false,
  68. customerContact: customerContact,
  69. contactsForm: {},
  70. contactsData: [],
  71. basicData: {
  72. column: [
  73. {
  74. label: '系统号',
  75. prop: 'sysNo',
  76. rules: [
  77. {
  78. required: true,
  79. message: ' ',
  80. trigger: 'blur'
  81. }
  82. ]
  83. }, {
  84. label: '合同号',
  85. prop: 'orderNo',
  86. rules: [
  87. {
  88. required: true,
  89. message: ' ',
  90. trigger: 'blur'
  91. }
  92. ]
  93. }, {
  94. label: '发货日期',
  95. prop: 'corpId',
  96. type:'datetime',
  97. rules: [
  98. {
  99. required: true,
  100. message: ' ',
  101. trigger: 'blur'
  102. }
  103. ]
  104. }, {
  105. label: '业务员',
  106. prop: 'corpId',
  107. type:'select',
  108. rules: [
  109. {
  110. required: true,
  111. message: ' ',
  112. trigger: 'blur'
  113. }
  114. ]
  115. }, {
  116. label: '销售公司',
  117. prop: 'corpId',
  118. type:'select',
  119. rules: [
  120. {
  121. required: true,
  122. message: ' ',
  123. trigger: 'blur'
  124. }
  125. ]
  126. }, {
  127. label: '工厂/贸易商名称',
  128. prop: 'corpId',
  129. type:'select',
  130. rules: [
  131. {
  132. required: true,
  133. message: ' ',
  134. trigger: 'blur'
  135. }
  136. ]
  137. }, {
  138. label: '仓库名称',
  139. prop: 'corpId',
  140. type:'select',
  141. rules: [
  142. {
  143. required: true,
  144. message: ' ',
  145. trigger: 'blur'
  146. }
  147. ]
  148. }, {
  149. label: '销售单价',
  150. prop: 'corpId',
  151. rules: [
  152. {
  153. required: true,
  154. message: ' ',
  155. trigger: 'blur'
  156. }
  157. ]
  158. }, {
  159. label: '发票重量',
  160. prop: 'corpId',
  161. rules: [
  162. {
  163. required: true,
  164. message: ' ',
  165. trigger: 'blur'
  166. }
  167. ]
  168. }, {
  169. label: '备注',
  170. prop: 'remark',
  171. span: 24,
  172. mock: {
  173. type: 'county'
  174. }
  175. }
  176. ]
  177. },
  178. }
  179. },
  180. methods: {
  181. //新增商品信息保存触发
  182. rowSave(row, done, loading) {
  183. console.log(row)
  184. console.log(this.contactsData)
  185. // this.contactsData.push(row)
  186. done()
  187. },
  188. //点击行可编辑
  189. handleRowClick(row, event, column) {
  190. console.log(row.$index)
  191. },
  192. //商品编辑
  193. rowCell(row, index) {
  194. console.log(row)
  195. this.$refs.crudContact.rowCell(row, index)
  196. },
  197. //修改商品信息触发
  198. rowUpdate(row, index, done, loading) {
  199. done(row);
  200. },
  201. //删除商品信息触发
  202. rowDel(row, index, donerowDel) {
  203. this.$confirm("确定将选择数据删除?", {
  204. confirmButtonText: "确定",
  205. cancelButtonText: "取消",
  206. type: "warning"
  207. }).then(() => {
  208. //商品判断是否需要调用删除接口
  209. if (row.id) {
  210. corpsattn(row.id).then(res => {
  211. this.$message({
  212. type: "success",
  213. message: "操作成功!"
  214. });
  215. this.contactsData.splice(index, 1);
  216. })
  217. } else {
  218. this.$message({
  219. type: "success",
  220. message: "操作成功!"
  221. });
  222. this.contactsData.splice(index, 1);
  223. }
  224. })
  225. },
  226. //修改提交触发
  227. editCustomer() {
  228. console.log(this.form)
  229. this.$refs["form"].validate((valid) => {
  230. if (valid) {
  231. } else {
  232. return false;
  233. }
  234. });
  235. },
  236. //返回列表
  237. backToList() {
  238. this.$router.$avueRouter.closeTag();
  239. this.$router.push({
  240. path: '/importTrade/invoice/index',
  241. query: {}
  242. });
  243. }
  244. },
  245. }
  246. </script>
  247. <style lang="scss" scoped>
  248. .customer-head {
  249. position: fixed;
  250. top: 105px;
  251. width: 100%;
  252. margin-left: -10px;
  253. height: 62px;
  254. background: #ffffff;
  255. box-shadow: 0 4px 12px 0px rgba(232, 232, 235, 1);
  256. z-index: 999;
  257. /* display: flex;
  258. justify-content: left; */
  259. }
  260. .customer-back {
  261. cursor: pointer;
  262. line-height: 62px;
  263. font-size: 16px;
  264. color: #323233;
  265. font-weight: 400;
  266. }
  267. .back-icon {
  268. line-height: 64px;
  269. font-size: 20px;
  270. margin-right: 8px;
  271. }
  272. .add-customer-btn {
  273. position: fixed;
  274. right: 36px;
  275. top: 115px;
  276. }
  277. ::v-deep .el-form-item {
  278. margin-bottom: 0;
  279. }
  280. .el-dialogDeep {
  281. ::v-deep .el-dialog {
  282. margin: 1vh auto 0 !important;
  283. padding-bottom: 10px !important;
  284. .el-dialog__body, .el-dialog__footer {
  285. padding-bottom: 0 !important;
  286. padding-top: 0 !important;
  287. }
  288. }
  289. }
  290. </style>