damon227 2 سال پیش
والد
کامیت
f40f621748

+ 7 - 1
src/components/work-flow/home.vue

@@ -76,6 +76,7 @@
           :key="item.id"
           :node="item"
           :disabled="disabled"
+          :isEdit="isEdit"
           :selectOperator="selectOperator"
           @setNode="setNode"
           @deleteNode="deleteNode"
@@ -122,6 +123,10 @@ export default {
     selectOperator: {
       type: Boolean,
       default: false
+    },
+    isEdit: {
+      type: Boolean,
+      default: false
     }
   },
   data () {
@@ -172,7 +177,8 @@ export default {
       })
     },
     disabled (val) {
-    }
+    },
+    isEdit(val){}
   },
   mounted () {
     // console.log('mounted')

+ 605 - 0
src/components/work-flow/node-add.vue

@@ -0,0 +1,605 @@
+<template>
+  <div>
+    <el-form
+      :model="form"
+      ref="form"
+      :rules="rules"
+      label-width="80px"
+      v-if="node.type !== 't-check'"
+    >
+      <el-form-item label="节点名称" prop="nodeName">
+        <el-input
+          v-model="form.nodeName"
+          placeholder="请输入节点名称"
+          :disabled="disabled || selectOperator"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="工种类型"
+        prop="workTypeId"
+        v-if="node.type !== 'end'"
+      >
+        <el-select
+          v-model="form.workTypeId"
+          placeholder="请选择"
+          style="width: 100%"
+          :disabled="disabled || selectOperator"
+          @change="onChage"
+        >
+          <el-option
+            v-for="item in workTypeOptions"
+            :key="item.typeId"
+            :label="item.name"
+            :value="item.typeId"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="工时单价">
+        <el-input
+          v-model="form.quotedPrice"
+          placeholder="工时单价"
+          :disabled="disabled"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="备注" prop="notes">
+        <el-input
+          v-model="form.notes"
+          :disabled="disabled || selectOperator"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="工序要求" prop="require" v-if="node.type !== 'end'">
+        <el-input
+          v-model="form.require"
+          :disabled="disabled || selectOperator"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="工序说明" prop="explain" v-if="node.type !== 'end'">
+        <el-input
+          v-model="form.explain"
+          :disabled="disabled || selectOperator"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="所需工时"
+        prop="preTaskTime"
+        v-if="node.type !== 'end'"
+      >
+        <el-input
+          v-model="form.preTaskTime"
+          :disabled="disabled || selectOperator"
+          oninput="value=value.replace(/[^0-9.]/g,'')"
+        >
+          <i slot="suffix" style="font-style: normal; margin-right: 10px">h</i>
+        </el-input>
+      </el-form-item>
+      <el-form-item label="操作人" v-if="form.operatorName && !selectOperator">
+        <el-input
+          :disabled="disabled && selectOperator"
+          v-model="form.operatorName"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="操作人"
+        prop="operatorId"
+        v-if="selectOperator && node.type !== 'end'"
+      >
+        <el-select
+          v-model="form.operatorId"
+          :disabled="disabled && selectOperator"
+          multiple
+          placeholder="请选择"
+          style="width: 100%"
+        >
+          <el-option
+            v-for="item in operatorIdOptions"
+            :key="item.userId"
+            :label="item.name"
+            :value="item.userId"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item v-if="node.type !== 'end' && !disabled && !selectOperator">
+        <upload-component
+          :title="'附件'"
+          :accept="'*'"
+          :file-obj-list="fileList"
+          @uploadSuccess="uploadSuccess"
+        />
+      </el-form-item>
+      <el-form-item v-else>
+        <upload-component
+          :display="true"
+          :title="'附件'"
+          :accept="'*'"
+          :file-obj-list="fileList"
+          @uploadSuccess="uploadSuccess"
+        />
+      </el-form-item>
+    </el-form>
+
+    <!-- 节点是总检时显示下面内容 -->
+    <el-form
+      :model="form"
+      ref="form"
+      :rules="rules"
+      label-width="80px"
+      v-if="node.type == 't-check'"
+    >
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="节点名称" prop="nodeName">
+            <el-input
+              v-model="form.nodeName"
+              placeholder="请输入节点名称"
+              :disabled="disabled || selectOperator"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item
+            label="工种类型"
+            prop="workTypeId"
+            v-if="node.type !== 'end'"
+          >
+            <el-select
+              v-model="form.workTypeId"
+              placeholder="请选择"
+              style="width: 100%"
+              :disabled="disabled || selectOperator"
+              @change="onChage"
+            >
+              <el-option
+                v-for="item in workTypeOptions"
+                :key="item.typeId"
+                :label="item.name"
+                :value="item.typeId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="工时单价">
+            <el-input
+              v-model="form.quotedPrice"
+              placeholder="工时单价"
+              disabled
+            ></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item
+            label="工序要求"
+            prop="require"
+            v-if="node.type !== 'end'"
+          >
+            <el-input
+              v-model="form.require"
+              :disabled="disabled || selectOperator"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item
+            label="工序说明"
+            prop="explain"
+            v-if="node.type !== 'end'"
+          >
+            <el-input
+              v-model="form.explain"
+              :disabled="disabled || selectOperator"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item
+            label="所需工时"
+            prop="preTaskTime"
+            v-if="node.type !== 'end'"
+          >
+            <el-input
+              v-model="form.preTaskTime"
+              :disabled="disabled || selectOperator"
+              oninput="value=value.replace(/[^0-9.]/g,'')"
+            >
+              <i slot="suffix" style="font-style: normal; margin-right: 10px"
+                >h</i
+              >
+            </el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item
+            label="操作人"
+            v-if="disabled"
+          >
+            <el-input
+              :disabled="disabled"
+              v-model="form.operatorName"
+            ></el-input>
+          </el-form-item>
+          <el-form-item
+            label="操作人"
+            prop="operatorId"
+            v-if="!disabled && selectOperator && node.type !== 'end'"
+          >
+            <el-select
+              v-model="form.operatorId"
+              :disabled="disabled && selectOperator"
+              multiple
+              placeholder="请选择"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in operatorIdOptions"
+                :key="item.userId"
+                :label="item.name"
+                :value="item.userId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="24">
+          <el-form-item label="备注" prop="notes">
+            <el-input
+              type="textarea"
+              v-model="form.notes"
+              :disabled="disabled || selectOperator"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="24">
+          <div>检验项目</div>
+        </el-col>
+      </el-row>
+      <!-- <el-row>
+        <el-col :span="24">
+          <el-form-item label="检验方法">
+            <div>
+              1.游标卡尺,2.千分尺,3.高度尺,4.百分表,5.R规,6.环规、塞规,7.游标角度尺,8.三坐标,9.模具,10.样板,11.夹具,12.目测,13.组合测量,14.精密测量,15.敲击,16.测厚仪,17.其他
+            </div>
+          </el-form-item>
+        </el-col>
+      </el-row> -->
+      <el-row>
+        <el-table :data="form.prodProductionRequireList" style="width: 100%">
+          <el-table-column prop="pageNo" label="页次/图区">
+            <template slot-scope="scope">
+              <el-form-item
+                :prop="'prodProductionRequireList.' + scope.$index + '.pageNo'"
+                :rules="rules.pageNo"
+                label-width="0px"
+              >
+                <el-input
+                  v-model="scope.row.pageNo"
+                  :disabled="disabled || selectOperator"
+                ></el-input>
+              </el-form-item>
+            </template>
+          </el-table-column>
+          <el-table-column prop="inspectionParam" label="检查参数">
+            <template slot-scope="scope">
+              <el-form-item
+                :prop="
+                  'prodProductionRequireList.' +
+                  scope.$index +
+                  '.inspectionParam'
+                "
+                :rules="rules.inspectionParam"
+                label-width="0px"
+              >
+                <el-input
+                  v-model="scope.row.inspectionParam"
+                  :disabled="disabled || selectOperator"
+                ></el-input>
+              </el-form-item>
+            </template>
+          </el-table-column>
+          <el-table-column prop="inspectionMethod" label="检验方法">
+            <template slot-scope="scope">
+              <el-form-item
+                :prop="
+                  'prodProductionRequireList.' +
+                  scope.$index +
+                  '.inspectionMethod'
+                "
+                :rules="rules.inspectionMethod"
+                label-width="0px"
+              >
+                <el-select
+                  v-model="scope.row.inspectionMethod"
+                  placeholder="请选择"
+                  style="width: 100%"
+                  :disabled="disabled || selectOperator"
+                >
+                  <el-option
+                    v-for="item in inspectionMethodOptions"
+                    :key="item.value"
+                    :label="item.name"
+                    :value="item.value"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </template>
+          </el-table-column>
+          <el-table-column prop="allowValues" label="允许值">
+            <template slot-scope="scope">
+              <el-form-item
+                :prop="
+                  'prodProductionRequireList.' + scope.$index + '.allowValues'
+                "
+                :rules="rules.allowValues"
+                label-width="0px"
+              >
+                <el-input
+                  v-model="scope.row.allowValues"
+                  :disabled="disabled || selectOperator"
+                ></el-input>
+              </el-form-item>
+            </template>
+          </el-table-column>
+          <el-table-column prop="measureRecord1" label="实测记录1">
+            <template slot-scope="scope">
+              <div style="margin-bottom:22px;">{{scope.row.measureRecord1}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="measureRecord2" label="实测纪录2">
+            <template slot-scope="scope">
+              <div style="margin-bottom:22px;">{{scope.row.measureRecord2}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" width="140px" v-if="!disabled">
+            <template slot-scope="scope">
+              <el-button
+                type="primary"
+                icon="el-icon-circle-plus"
+                circle
+                @click="addRow"
+              ></el-button>
+              <el-button
+                type="danger"
+                icon="el-icon-delete"
+                circle
+                @click="removeRow(scope.$index)"
+                v-if="scope.$index > 0"
+              ></el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-row>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { getWorkType } from '@/api/crafts'
+import { workTypeMasterList } from '@/api/worktype'
+import UploadComponent from '@/views/modules/common/upload-component'
+export default {
+  name: 'nodeAdd',
+  components: { UploadComponent },
+  props: {
+    data: {
+      type: Object,
+      default: () => {}
+    },
+    disabled: {
+      type: Boolean,
+      default: false
+    },
+    // 是否选择操作人,当选择操作人时,其他字段不可编辑
+    selectOperator: {
+      type: Boolean,
+      default: false
+    },
+    isEdit: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    return {
+      // 工种列表
+      workTypeOptions: [],
+      // 操作人列表
+      operatorIdOptions: [],
+      node: {},
+      form: {
+        nodeName: '',
+        workTypeId: '',
+        operatorId: [],
+        prodProductionRequireList: [{}]
+      },
+      fileList: [],
+      inspectionMethodOptions: [
+        { value: '1', name: '游标卡尺' },
+        { value: '2', name: '千分尺' },
+        { value: '3', name: '高度尺' },
+        { value: '4', name: '百分表' },
+        { value: '5', name: 'R规' },
+        { value: '6', name: '环规、塞规' },
+        { value: '7', name: '游标角度尺' },
+        { value: '8', name: '三坐标' },
+        { value: '9', name: '模具' },
+        { value: '10', name: '样板' },
+        { value: '11', name: '夹具' },
+        { value: '12', name: '目测' },
+        { value: '13', name: '组合测量' },
+        { value: '14', name: '精密测量' },
+        { value: '15', name: '敲击' },
+        { value: '16', name: '测厚仪' },
+        { value: '17', name: '其他' }
+      ],
+      rules: {
+        nodeName: [
+          { required: true, message: '请输入节点名称', trigger: 'blur' }
+        ],
+        workTypeId: [
+          { required: true, message: '请选择工种', trigger: 'blur' }
+        ],
+        operatorId: [
+          { required: true, message: '请选择操作人', trigger: 'blur' }
+        ],
+        preTaskTime: [
+          { required: true, message: '请输入所需工时', trigger: 'blur' }
+        ],
+        pageNo: [{ required: true, message: '请输入', trigger: 'blur' }],
+        inspectionParam: [
+          { required: true, message: '请输入', trigger: 'blur' }
+        ],
+        inspectionMethod: [
+          { required: true, message: '请选择', trigger: 'blur' }
+        ],
+        allowValues: [{ required: true, message: '请输入', trigger: 'blur' }]
+      }
+    }
+  },
+  watch: {
+    data (val) {
+      this.node = val
+      this.form = {
+        ...this.form,
+        ...this.node
+      }
+      if (this.node.operatorId) {
+        this.form.operatorId = this.node.operatorId.split(',')
+      }
+
+      // 附件
+      if (this.node.attachList) {
+        this.$nextTick(() => {
+          this.fileList = []
+          this.node.attachList.forEach((item) => {
+            this.fileList.push({
+              name: item.fileName,
+              url: item.url,
+              id: item.url
+            })
+          })
+        })
+      }
+    },
+    disabled (val) {
+      this.disabled = val
+    },
+    isEdit(val){
+      this.isEdit = val
+    }
+  },
+  activated () {},
+  created () {
+    this.getWorkTypeOptions()
+  },
+  computed: {},
+  mounted () {
+    this.node = this.data
+    this.form = {
+      ...this.form,
+      ...this.node
+    }
+    if (this.node.operatorId) {
+      this.form.operatorId = this.node.operatorId.split(',')
+    }
+
+    // 附件
+    if (this.node.attachList) {
+      this.fileList = []
+      this.node.attachList.forEach((item) => {
+        this.fileList.push({
+          name: item.fileName,
+          url: item.url,
+          id: item.url
+        })
+      })
+    }
+    this.getOperatorList()
+  },
+  methods: {
+    getWorkTypeOptions () {
+      this.workTypeOptions = []
+      getWorkType().then(({ data }) => {
+        if (data && data.code === '200') {
+          this.workTypeOptions = data.data
+        }
+      })
+    },
+    onChage (val) {
+      this.workTypeOptions.forEach((v) => {
+        if (v.typeId === val) {
+          this.form.quotedPrice = Number(v.quotedPrice || 0).toFixed(2)
+        }
+      })
+    },
+    // 按工种ID查询操作人列表
+    getOperatorList () {
+      if (this.node.workTypeId) {
+        workTypeMasterList(this.node.workTypeId).then(({ data }) => {
+          if (data && data.code === '200') {
+            this.operatorIdOptions = []
+            data.data.forEach((item) => {
+              this.operatorIdOptions.push(item)
+            })
+          }
+        })
+      }
+    },
+    uploadSuccess (fileList) {
+      this.fileList = fileList
+    },
+    // 校验表单
+    validateFormData () {
+      return new Promise((resolve, reject) => {
+        this.$refs['form'].validate((valid) => {
+          if (!valid) {
+            // eslint-disable-next-line prefer-promise-reject-errors
+            reject()
+            return
+          }
+          resolve()
+        })
+      })
+    },
+    // 获取表单数据
+    formData () {
+      const form = { ...this.form, operatorName: '' }
+      if (this.form.operatorId != null) {
+        form.operatorId = this.form.operatorId.toString()
+        this.form.operatorId.forEach((id) => {
+          let op = this.operatorIdOptions.find((t) => t.userId === id)
+          if (op.name != null) {
+            form.operatorName += op.name + ' '
+          }
+        })
+      }
+
+      // 填充附件
+      let fList = this.fileList
+      if (fList.length > 0) {
+        form.attachList = []
+        for (let i = 0; i < fList.length; i++) {
+          form.attachList.push({
+            fileName: fList[i].name,
+            url: fList[i].url
+          })
+        }
+      }
+      return form
+    },
+
+    addRow () {
+      this.form.prodProductionRequireList.push({})
+    },
+    removeRow (index) {
+      this.form.prodProductionRequireList.splice(index, 1)
+    }
+  }
+}
+</script>
+<style scoped></style>

+ 30 - 23
src/components/work-flow/node-edit.vue

@@ -11,7 +11,7 @@
         <el-input
           v-model="form.nodeName"
           placeholder="请输入节点名称"
-          :disabled="disabled || selectOperator"
+          :disabled="disabled || selectOperator || isEdit"
         ></el-input>
       </el-form-item>
       <el-form-item
@@ -23,7 +23,7 @@
           v-model="form.workTypeId"
           placeholder="请选择"
           style="width: 100%"
-          :disabled="disabled || selectOperator"
+          :disabled="disabled || selectOperator || isEdit"
           @change="onChage"
         >
           <el-option
@@ -38,25 +38,25 @@
         <el-input
           v-model="form.quotedPrice"
           placeholder="工时单价"
-          disabled
+          :disabled="disabled || isEdit"
         ></el-input>
       </el-form-item>
       <el-form-item label="备注" prop="notes">
         <el-input
           v-model="form.notes"
-          :disabled="disabled || selectOperator"
+          :disabled="disabled || selectOperator || !isEdit"
         ></el-input>
       </el-form-item>
       <el-form-item label="工序要求" prop="require" v-if="node.type !== 'end'">
         <el-input
           v-model="form.require"
-          :disabled="disabled || selectOperator"
+          :disabled="disabled || selectOperator || !isEdit"
         ></el-input>
       </el-form-item>
       <el-form-item label="工序说明" prop="explain" v-if="node.type !== 'end'">
         <el-input
           v-model="form.explain"
-          :disabled="disabled || selectOperator"
+          :disabled="disabled || selectOperator || !isEdit"
         ></el-input>
       </el-form-item>
       <el-form-item
@@ -66,7 +66,7 @@
       >
         <el-input
           v-model="form.preTaskTime"
-          :disabled="disabled || selectOperator"
+          :disabled="disabled || selectOperator || !isEdit"
           oninput="value=value.replace(/[^0-9.]/g,'')"
         >
           <i slot="suffix" style="font-style: normal; margin-right: 10px">h</i>
@@ -74,7 +74,7 @@
       </el-form-item>
       <el-form-item label="操作人" v-if="form.operatorName && !selectOperator">
         <el-input
-          :disabled="disabled && selectOperator"
+          :disabled="disabled && selectOperator || !isEdit"
           v-model="form.operatorName"
         ></el-input>
       </el-form-item>
@@ -85,7 +85,7 @@
       >
         <el-select
           v-model="form.operatorId"
-          :disabled="disabled && selectOperator"
+          :disabled="disabled && selectOperator || isEdit"
           multiple
           placeholder="请选择"
           style="width: 100%"
@@ -98,7 +98,7 @@
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item v-if="node.type !== 'end' && !disabled && !selectOperator">
+      <el-form-item v-if="node.type !== 'end' && !disabled && !selectOperator && isEdit">
         <upload-component
           :title="'附件'"
           :accept="'*'"
@@ -131,7 +131,7 @@
             <el-input
               v-model="form.nodeName"
               placeholder="请输入节点名称"
-              :disabled="disabled || selectOperator"
+              :disabled="disabled || selectOperator || isEdit"
             ></el-input>
           </el-form-item>
         </el-col>
@@ -145,7 +145,7 @@
               v-model="form.workTypeId"
               placeholder="请选择"
               style="width: 100%"
-              :disabled="disabled || selectOperator"
+              :disabled="disabled || selectOperator || isEdit"
               @change="onChage"
             >
               <el-option
@@ -176,7 +176,7 @@
           >
             <el-input
               v-model="form.require"
-              :disabled="disabled || selectOperator"
+              :disabled="disabled || selectOperator || !isEdit"
             ></el-input>
           </el-form-item>
         </el-col>
@@ -188,7 +188,7 @@
           >
             <el-input
               v-model="form.explain"
-              :disabled="disabled || selectOperator"
+              :disabled="disabled || selectOperator || isEdit"
             ></el-input>
           </el-form-item>
         </el-col>
@@ -200,7 +200,7 @@
           >
             <el-input
               v-model="form.preTaskTime"
-              :disabled="disabled || selectOperator"
+              :disabled="disabled || selectOperator || !isEdit"
               oninput="value=value.replace(/[^0-9.]/g,'')"
             >
               <i slot="suffix" style="font-style: normal; margin-right: 10px"
@@ -217,7 +217,7 @@
             v-if="disabled"
           >
             <el-input
-              :disabled="disabled"
+              :disabled="disabled || isEdit"
               v-model="form.operatorName"
             ></el-input>
           </el-form-item>
@@ -228,7 +228,7 @@
           >
             <el-select
               v-model="form.operatorId"
-              :disabled="disabled && selectOperator"
+              :disabled="disabled && selectOperator || isEdit"
               multiple
               placeholder="请选择"
               style="width: 100%"
@@ -249,7 +249,7 @@
             <el-input
               type="textarea"
               v-model="form.notes"
-              :disabled="disabled || selectOperator"
+              :disabled="disabled || selectOperator || !isEdit"
             ></el-input>
           </el-form-item>
         </el-col>
@@ -279,7 +279,7 @@
               >
                 <el-input
                   v-model="scope.row.pageNo"
-                  :disabled="disabled || selectOperator"
+                  :disabled="disabled || selectOperator || isEdit"
                 ></el-input>
               </el-form-item>
             </template>
@@ -297,7 +297,7 @@
               >
                 <el-input
                   v-model="scope.row.inspectionParam"
-                  :disabled="disabled || selectOperator"
+                  :disabled="disabled || selectOperator || isEdit"
                 ></el-input>
               </el-form-item>
             </template>
@@ -317,7 +317,7 @@
                   v-model="scope.row.inspectionMethod"
                   placeholder="请选择"
                   style="width: 100%"
-                  :disabled="disabled || selectOperator"
+                  :disabled="disabled || selectOperator || isEdit"
                 >
                   <el-option
                     v-for="item in inspectionMethodOptions"
@@ -340,7 +340,7 @@
               >
                 <el-input
                   v-model="scope.row.allowValues"
-                  :disabled="disabled || selectOperator"
+                  :disabled="disabled || selectOperator || isEdit"
                 ></el-input>
               </el-form-item>
             </template>
@@ -355,7 +355,7 @@
               <div style="margin-bottom:22px;">{{scope.row.measureRecord2}}</div>
             </template>
           </el-table-column>
-          <el-table-column label="操作" width="140px" v-if="!disabled">
+          <el-table-column label="操作" width="140px" v-if="!disabled && !isEdit">
             <template slot-scope="scope">
               <el-button
                 type="primary"
@@ -398,6 +398,10 @@ export default {
     selectOperator: {
       type: Boolean,
       default: false
+    },
+    isEdit: {
+      type: Boolean,
+      default: false
     }
   },
   data () {
@@ -484,6 +488,9 @@ export default {
     },
     disabled (val) {
       this.disabled = val
+    },
+    isEdit(val){
+      this.isEdit = val
     }
   },
   activated () {},

+ 19 - 1
src/components/work-flow/node-item.vue

@@ -40,12 +40,24 @@
       :append-to-body="true"
       width="60%"
     >
+    <div v-if="isEdit">
       <nodeEdit
         ref="nodeEdit"
         :data="dialog.data"
         :disabled="disabled"
+        :isEdit="isEdit"
         :selectOperator="selectOperator"
       ></nodeEdit>
+    </div>
+    <div v-else>
+      <nodeAdd
+        ref="nodeAdd"
+        :data="dialog.data"
+        :disabled="disabled"
+        :isEdit="isEdit"
+        :selectOperator="selectOperator"
+      ></nodeAdd>
+    </div>
       <div slot="footer">
         <el-button @click="dialog.visible = false">取 消</el-button>
         <el-button v-if="!disabled" type="primary" @click="dialogSubmit"
@@ -59,10 +71,12 @@
 <script>
 import ClickOutside from 'vue-click-outside'
 import nodeEdit from './node-edit'
+import nodeAdd from './node-add'
 export default {
   name: 'node-item',
   components: {
-    nodeEdit
+    nodeEdit,
+    nodeAdd
   },
   props: {
     node: {
@@ -77,6 +91,10 @@ export default {
     selectOperator: {
       type: Boolean,
       default: false
+    },
+    isEdit: {
+      type: Boolean,
+      default: false
     }
   },
   directives: {

+ 2 - 2
src/views/modules/tech/crafts-management.vue

@@ -140,7 +140,7 @@
           label="操作">
           <template slot-scope="scope">
             <el-button v-if="isAuth('pro:technology:revoke') && scope.row.state === '1'" type="text" size="small" @click="revokeHandle(scope.row.techId)">撤销</el-button>
-            <el-button v-if="isAuth('pro:technology:update') && scope.row.state === '0'" type="text" size="small" @click="addOrUpdateHandle(scope.row.techId)">更新</el-button>
+            <el-button v-if="isAuth('pro:technology:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.techId)">编辑</el-button>
             <el-button v-if="isAuth('pro:technology:update') && scope.row.techState === '-1' && scope.row.state === '3'" type="text" size="small" @click="changeStateHandle(scope.row.techId, 0)">启用</el-button>
             <el-button v-if="isAuth('pro:technology:update') && scope.row.techState === '0'" type="text" size="small" @click="changeStateHandle(scope.row.techId, -1)">停用</el-button>
             <el-button v-if="isAuth('pro:technology:info')" type="text" size="small" @click="detailHandle(scope.row.techId, scope.row.productName)">查看</el-button>
@@ -262,7 +262,7 @@
       addOrUpdateHandle (id) {
         this.addOrUpdateVisible = true
         this.$nextTick(() => {
-          this.$refs.addOrUpdate.init(id, false)
+          this.$refs.addOrUpdate.init(id, false, Number(id) != 0)
         })
       },
       // 撤销

+ 16 - 14
src/views/modules/tech/ctafts-add-or-detail.vue

@@ -1,13 +1,6 @@
 <template>
   <div>
-    <!-- <el-dialog
-      :title="display ? '工艺详情' : '新建工艺'"
-      width="70%"
-      :close-on-click-modal="false"
-      :visible.sync="visible"
-      @close="handleClose"
-    > -->
-      <div class="my-title">{{ !id ? '新增': display ? '详情' : '修改' }}</div>
+      <div class="my-title">{{ isEdit ? '编辑' : '新增' }}</div>
       <el-form
         :model="dataForm"
         :rules="dataRule"
@@ -19,7 +12,7 @@
             <el-form-item label="工艺名称" prop="techName">
               <el-input
                 v-model="dataForm.techName"
-                :disabled="display"
+                :disabled="display || isEdit"
                 placeholder="工艺名称"
               ></el-input>
             </el-form-item>
@@ -28,7 +21,7 @@
             <el-form-item label="工艺版本" prop="techVersion">
               <el-input
                 v-model="dataForm.techVersion"
-                :disabled="display"
+                :disabled="display || isEdit"
                 placeholder="工艺版本"
               ></el-input>
             </el-form-item>
@@ -37,7 +30,7 @@
             <el-form-item label="产品" prop="productId">
               <el-select
                 v-model="dataForm.productId"
-                :disabled="display"
+                :disabled="display || isEdit"
                 remote
                 placeholder="请选择"
               >
@@ -55,7 +48,7 @@
         <el-form-item label="备注说明">
           <el-input
             v-model="dataForm.notes"
-            :disabled="display"
+            :disabled="display || isEdit"
             placeholder="备注说明"
           ></el-input>
         </el-form-item>
@@ -77,6 +70,7 @@
             ref="workFlow"
             :nodeData="workFlowData"
             @saveWorkFlow="saveWorkFlow"
+            :isEdit="isEdit"
           ></work-flow>
         </el-row>
       </el-form>
@@ -111,6 +105,7 @@ export default {
       datas: {},
       visible: false,
       display: false,
+      isEdit: false, //是否是编辑页面
       fileList: [],
       dataList: [],
       id: 0,
@@ -172,7 +167,7 @@ export default {
         lineList: []
       }
     },
-    async init (id, display) {
+    async init (id, display, isEdit) {
       this.fileList = []
       this.dataForm = {
         techName: '',
@@ -182,6 +177,8 @@ export default {
       }
       this.visible = true
       this.display = display
+      this.isEdit = isEdit
+      
       await getProduct({ current: 1, size: 20000 }).then(({ data }) => {
         if (data && data.code === '200') {
           this.optionLevel = data.data.records
@@ -250,8 +247,13 @@ export default {
             return
           }
 
+          let url = `/biz-service/technology/submit`
+          if(this.isEdit){
+            url = `/biz-service/technology/update`
+          }
+
           this.$http({
-            url: this.$http.adornUrl(`/biz-service/technology/submit`),
+            url: this.$http.adornUrl(url),
             method: 'post',
             data: this.$http.adornData({
               ...this.dataForm,