linwenxin hace 6 meses
padre
commit
d5bd2898c6

+ 111 - 3
src/views/workOrder/workOrderPool/detailModule/workOrderInfo/buttons/processFeedback.vue

@@ -36,8 +36,9 @@ import buttonMixin from './button_mixin.js'
 import ImageUpload from '@/components/file-upload'
 import { required } from '@/components/template/rules_verify.js'
 import { orderBaseLogAdd } from '@/api/workOrderPool.js'
+import editTable from '@/components/template/editTable.js'
 export default {
-  mixins: [buttonMixin],
+  mixins: [buttonMixin, editTable],
   components: {
     ImageUpload
   },
@@ -64,7 +65,8 @@ export default {
         appointmentTime: '',
         appointmentEndTime: '',
         type: this.resultCode,
-        typeText: this.resultCode
+        typeText: this.resultCode,
+        daijianItems: []
       },
       formRules: {}
     }
@@ -89,6 +91,8 @@ export default {
           event: {
             change: val => {
               this.formData.typeText = this.formData.type
+              this.formData.daijianItems = []
+              this.isEditTableIndex = -1
             }
           }
         },
@@ -250,6 +254,80 @@ export default {
         },
 
         {
+          isShow: !!~['待件'].indexOf(this.formData.type),
+          name: 'slot-component',
+          md: 24,
+          attributes: { disabled: false, placeholder: '' },
+          formItemAttributes: {
+            label: '待件明细',
+            prop: 'daijianItems',
+            rules: [...required]
+          },
+          render: (h, { props, onInput }) => {
+            var { value } = props
+            return this.convertTableJson(
+              value,
+              [
+                {
+                  columnAttributes: {
+                    label: '待件申请编号',
+                    prop: 'applyNum1',
+                    rules: [...required]
+                  },
+                  editRender: this.inputEditRender,
+                  viewRender: this.inputViewRender
+                },
+                {
+                  columnAttributes: {
+                    label: '待件物料编号',
+                    prop: 'applyNum2',
+                    rules: [...required]
+                  },
+                  editRender: this.inputEditRender,
+                  viewRender: this.inputViewRender
+                }
+              ],
+              {
+                isEdit: true,
+                isAdd: true,
+                isDel: true
+              },
+              {
+                add: () => {
+                  this.formData.daijianItems.push({
+                    applyNum1: '',
+                    applyNum2: ''
+                  })
+                  this.isEditTableIndex = this.formData.daijianItems.length - 1
+                },
+                delete: ({ row, column, index }, cb) => {
+                  if (this.isEditTableIndex == index) {
+                    this.isEditTableIndex = -1
+                  } else if (this.isEditTableIndex > index) {
+                    this.isEditTableIndex--
+                  }
+                  cb?.()
+                },
+                verify: ({ row, column, index }, isEditTableIndex) => {
+                  return new Promise(r => {
+                    if (isEditTableIndex > -1) {
+                      this.$refs.formRef.validateField(
+                        [`daijianItems.${isEditTableIndex}.applyNum1`, `daijianItems.${isEditTableIndex}.applyNum2`],
+                        v => {
+                          r(!!v)
+                        }
+                      )
+                    } else {
+                      r(true)
+                    }
+                  })
+                }
+              }
+            )
+          }
+        },
+
+        {
           md: 24,
           name: 'el-input',
           attributes: { placeholder: '请输入', type: 'textarea' },
@@ -295,9 +373,13 @@ export default {
       this.$refs.formRef.validate(valid => {
         if (valid) {
           this.lockBtn()
+
           orderBaseLogAdd({
             ...this.formData,
-            imgSrc: this.formData.imgSrc.map(item => item.url).join(',')
+            imgSrc: this.formData.imgSrc.map(item => item.url).join(','),
+            applyNum: !!~['待件'].indexOf(this.formData.type)
+              ? this.formData.daijianItems.map(item => `${item.applyNum1}|${item.applyNum2}`).join(',')
+              : ''
           })
             .then(res => {
               this.unlockBtn()
@@ -316,6 +398,32 @@ export default {
             })
         }
       })
+    },
+
+    inputEditRender: (h, { row, column, index }) => {
+      return (
+        <div class="redbordererr">
+          <el-form-item
+            label=""
+            label-width="0px"
+            prop={`daijianItems.${index}.${column.columnAttributes.prop}`}
+            rules={column.columnAttributes.rules || []}
+          >
+            <el-input
+              value={row[column.columnAttributes.prop]}
+              onInput={val => {
+                row[column.columnAttributes.prop] = val
+              }}
+              type="number"
+              placeholder="请输入内容"
+            ></el-input>
+          </el-form-item>
+        </div>
+      )
+    },
+
+    inputViewRender: (h, { row, column, index }) => {
+      return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
     }
   }
 }