2213980799@qq.com vor 1 Jahr
Ursprung
Commit
8f53d540d2

+ 1 - 0
src/enum/dict.js

@@ -12,6 +12,7 @@ export default {
   质检类型:'inspection_type',
   不良品处理类型:'unqualified_products_type',
   质检计划类型:'inspection_plan_type',
+  质检计划类型:'inspection_plan_type',
 
 };
 

+ 30 - 4
src/views/inspectionPlan/components/edit.vue

@@ -32,7 +32,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="计划类型:" prop="type">
+          <el-form-item label="类型:" prop="type">
             <DictSelection
               dictName="质检计划类型"
               @change="planChange"
@@ -42,7 +42,16 @@
             ></DictSelection>
           </el-form-item>
         </el-col>
-
+        <el-col :span="8">
+          <el-form-item label="质检方式:" prop="qualityMode">
+            <DictSelection
+              dictName="质检方式"
+              v-model="form.qualityMode"
+              clearable
+              :disabled="type == 'detail' || type == 'issued'"
+            ></DictSelection>
+          </el-form-item>
+        </el-col>
         <!-- <el-col :span="12">
           <el-form-item label="质检工具:" prop="inspectionTool">
             <el-input v-model="form.inspectionTool"></el-input>
@@ -191,6 +200,16 @@
             ></el-date-picker>
           </el-form-item>
         </el-col>
+        <el-col :span="24">
+          <el-form-item label="附件:" prop="accessory">
+            <fileUpload
+              v-model="form.accessory"
+              module="main"
+              :showLib="false"
+              :limit="1"
+            />
+          </el-form-item>
+        </el-col>
       </el-row>
       <el-table :data="form.productList" border height="30vh">
         <el-table-column label="产品编码" align="center" prop="productCode">
@@ -268,6 +287,8 @@ import produceOrder from './produceOrder';
 import warehousing from './warehousing';
 import { getUserPage } from '@/api/system/organization';
 import deptSelect from '@/components/CommomSelect/dept-select.vue';
+import fileUpload from '@/components/upload/fileUpload';
+
 export default {
   components: {
     EquipmentDialog,
@@ -275,6 +296,7 @@ export default {
     productionPlan,
     workOrder,
     produceOrder,
+    fileUpload,
     warehousing
   },
   data() {
@@ -294,6 +316,7 @@ export default {
         groupName: '',
         planStartTime: '',
         planEndTime: '',
+        accessory: [],
         // productCode: '',
         // productName: '',
         // specification: '',
@@ -302,7 +325,8 @@ export default {
         executeName: '',
         planSource: '',
         batchNo: '',
-        productList: []
+        productList: [],
+        qualityMode: ''
       };
     };
     return {
@@ -349,7 +373,9 @@ export default {
       this.type = type;
       if (this.type != 'add') {
         this.form = JSON.parse(JSON.stringify(row));
-        this.getUserList({ groupId: this.form.groupId });
+        if (this.form.groupId) {
+          this.getUserList({ groupId: this.form.groupId });
+        }
       }
       this.visible = true;
     },

+ 46 - 16
src/views/inspectionPlan/index.vue

@@ -18,6 +18,20 @@
         <template v-slot:type="{ row }">
           {{ getDictValue('质检计划类型', row.type) }}
         </template>
+        <template v-slot:qualityMode="{ row }">
+          {{ getDictValue('质检方式', row.qualityMode) }}
+        </template>
+        <template v-slot:accessory="scope">
+          <el-link
+            v-for="link in scope.row.accessory"
+            :key="link.id"
+            type="primary"
+            :underline="false"
+            @click="downloadFile(link)"
+          >
+            {{ link.name }}
+          </el-link>
+        </template>
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
           <el-link
@@ -25,7 +39,7 @@
             :underline="false"
             icon="el-icon-edit"
             @click="openEdit('detail', row)"
-            v-if="row.status==1"
+            v-if="row.status == 1"
           >
             详情
           </el-link>
@@ -34,7 +48,7 @@
             :underline="false"
             icon="el-icon-edit"
             @click="openEdit('edit', row)"
-            v-if="row.status==0"
+            v-if="row.status == 0"
           >
             修改
           </el-link>
@@ -42,7 +56,7 @@
             type="primary"
             :underline="false"
             icon="el-icon-edit"
-            v-if="row.status==0"
+            v-if="row.status == 0"
             @click="openEdit('issued', row)"
           >
             下发
@@ -51,8 +65,7 @@
             class="ele-action"
             title="确定要删除吗?"
             @confirm="remove(row)"
-            v-if="row.status==0"
-
+            v-if="row.status == 0"
           >
             <template v-slot:reference>
               <el-link type="danger" :underline="false" icon="el-icon-delete">
@@ -71,6 +84,8 @@ import search from './components/search.vue';
 import edit from './components/edit.vue';
 import { getList, removeItem } from '@/api/inspectionPlan';
 import dictMixins from '@/mixins/dictMixins';
+import {getFile} from "@/api/system/file";
+
 export default {
   mixins: [dictMixins],
   components: {
@@ -80,11 +95,10 @@ export default {
   data() {
     return {
       columns: [
-       
         {
           prop: 'code',
           label: '编码',
-          width: 160,
+          width: 160
         },
         {
           label: '名称',
@@ -94,11 +108,20 @@ export default {
           prop: 'batchNo',
           label: '批号'
         },
-        
+
         {
-          label: '计划类型',
+          label: '类型',
           prop: 'type',
-          slot:'type'
+          slot: 'type',
+          width: 120
+
+        },
+        {
+          label: '质检方式',
+          prop: 'qualityMode',
+          slot: 'qualityMode',
+          width: 120
+
         },
         {
           label: '计划来源编码',
@@ -108,7 +131,7 @@ export default {
           label: '自动派单',
           prop: 'autoOrder',
           formatter: (row, column, cellValue) => {
-            return cellValue == 1 ? '是' :  '否';
+            return cellValue == 1 ? '是' : '否';
           }
         },
         // {
@@ -133,7 +156,7 @@ export default {
         //   label: '数量',
         //   width: 60
         // },
-      
+
         {
           label: '执行部门',
           prop: 'groupName'
@@ -141,8 +164,7 @@ export default {
         {
           label: '执行人',
           prop: 'executeName',
-          width: 80,
-
+          width: 80
         },
         {
           label: '计划开始时间',
@@ -152,12 +174,17 @@ export default {
           label: '计划结束时间',
           prop: 'planEndTime'
         },
+        {
+          label: '附件',
+          prop: 'accessory',
+          slot: 'accessory'
+        },
         {
           label: '状态',
           prop: 'status',
           width: 70,
           formatter: (row, column, cellValue) => {
-            return cellValue == 1 ? '已下发' :  '未下发';
+            return cellValue == 1 ? '已下发' : '未下发';
           }
         },
 
@@ -175,6 +202,7 @@ export default {
   },
   created() {
     this.requestDict('质检计划类型');
+    this.requestDict('质检方式');
   },
   methods: {
     datasource({ page, where, limit }) {
@@ -193,7 +221,9 @@ export default {
     openEdit(type, row) {
       this.$refs.edit.open(type, row);
     },
-
+    downloadFile(file) {
+      getFile({objectName: file.storePath}, file.name);
+    },
     remove(row) {
       removeItem([row.id])
         .then((message) => {

+ 13 - 7
src/views/inspectionPoint/components/edit.vue

@@ -1,29 +1,33 @@
 <!-- 用户编辑弹窗 -->
 <template>
   <el-dialog
-    class="ele-dialog-form"
     :title="title"
     :visible.sync="visible"
     :before-close="handleClose"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     width="1000px"
+    append-to-body
+
+    class="ele-dialog-form"
+
   >
-    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+    <el-form ref="form" :model="form" :rules="rules" label-width="120px" v-if="visible">
       <el-row>
         <el-col :span="12">
           <el-form-item label="名称:" prop="pointName">
-            <el-input clearable v-model="form.pointName" placeholder="请输入" />
+            <el-input :disabled="type=='detail'" clearable v-model="form.pointName" placeholder="请输入"  />
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="区域:" prop="areaName">
-            <el-input clearable v-model="form.areaName" placeholder="请输入" />
+            <el-input :disabled="type=='detail'" clearable v-model="form.areaName" placeholder="请输入" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="质检分类:" prop="typeValue">
             <ele-tree-select
+            :disabled="type=='detail'"
               multiple
               clearable
               :data="typeList"
@@ -64,6 +68,7 @@
                 :list="item.itemVOList"
                 ref="inspectionProjectRef"
                 @changeDate="changeDate"
+                :disabled="type=='detail'"
               />
             </el-row>
           </el-tab-pane>
@@ -72,7 +77,8 @@
     </el-form>
     <template v-slot:footer>
       <el-button @click="handleClose">取消</el-button>
-      <el-button type="primary" :loading="loading" @click="save">
+             
+      <el-button type="primary" :loading="loading" @click="save"  :disabled="type=='detail'">
         保存
       </el-button>
     </template>
@@ -155,9 +161,9 @@ export default {
       // console.log(data);
     },
     open(type, row) {
-      this.title = type == 'add' ? '新增' : '编辑';
+      this.title = type == 'add' ? '新增' :type == 'edit' ?  '编辑':'详情';
       this.type = type;
-      if (this.type == 'edit') {
+      if (this.type != 'add') {
         this.form = row;
         if(row.qualityLevelList.length>0){
           this.form.typeValue=row.qualityLevelList.map(item=>item.id)

+ 37 - 25
src/views/inspectionPoint/components/inspectionProjectList.vue

@@ -3,7 +3,12 @@
     <div class="title">质检项</div>
 
     <el-table :data="listPage" border height="30vh">
-      <el-table-column label="序号" align="center" prop="inspectionCode"  width="50">
+      <el-table-column
+        label="序号"
+        align="center"
+        prop="inspectionCode"
+        width="50"
+      >
         <template slot-scope="scope">
           <span>{{ scope.$index + 1 }}</span>
         </template>
@@ -18,28 +23,32 @@
         prop="inspectionStandard"
         width="300px"
       >
-      <template slot-scope="scope">
-        <el-form-item label-width="0" prop="inspectionStandard">
-          <el-input
-            clearable
-            v-model="scope.row.inspectionStandard"
-            placeholder="请输入"
-            @change="changeValue"
-          >
-          <span slot="suffix">  {{ scope.row.unit }}</span>
-          <DictSelection style="width:80px" slot="prepend"  clearable dictName="数学字符" v-model="scope.row.symbol"></DictSelection>
-          </el-input>
-         
-        </el-form-item>
-     
-      </template>
-
+        <template slot-scope="scope">
+          <el-form-item label-width="0" prop="inspectionStandard">
+            <el-input
+              clearable
+              v-model="scope.row.inspectionStandard"
+              placeholder="请输入"
+              @change="changeValue"
+              :disabled="disabled"
+            >
+              <span slot="suffix"> {{ scope.row.unit }}</span>
+              <DictSelection
+                style="width: 80px"
+                slot="prepend"
+                clearable
+                dictName="数学字符"
+                v-model="scope.row.symbol"
+              ></DictSelection>
+            </el-input>
+          </el-form-item>
+        </template>
       </el-table-column>
       <!-- <el-table-column label="质检工具" align="center" prop="inspectionTool">
       </el-table-column> -->
       <el-table-column label="描述" align="center" prop="description">
       </el-table-column>
-      <el-table-column label="操作" align="center" width="70">
+      <el-table-column label="操作" align="center" width="70" v-if="!disabled">
         <template slot-scope="scope">
           <el-link
             type="danger"
@@ -51,7 +60,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <div class="add-product" @click="addEquipment">
+    <div class="add-product" @click="addEquipment" v-if="!disabled">
       <i class="el-icon-circle-plus-outline"></i>
     </div>
     <EquipmentDialog ref="equipmentDialog" @choose="choose" />
@@ -69,6 +78,10 @@ export default {
         return [];
       }
     },
+    disabled: {
+      type: Boolean,
+      default: false
+    },
     type: {}
   },
 
@@ -79,21 +92,20 @@ export default {
   },
 
   created() {
-    console.log(this.list,'this.list')
+    console.log(this.list, 'this.list');
     this.listPage = JSON.parse(JSON.stringify(this.list));
   },
   methods: {
     choose(data) {
       this.listPage = data;
-      this.$emit('changeDate',data)
+      this.$emit('changeDate', data);
     },
     handleDeleteItem(index, id) {
       this.listPage.splice(index, 1);
-      this.$emit('changeDate',this.listPage)
-
+      this.$emit('changeDate', this.listPage);
     },
-    changeValue(){
-      this.$emit('changeDate',this.listPage)
+    changeValue() {
+      this.$emit('changeDate', this.listPage);
     },
     addEquipment() {
       this.$refs.equipmentDialog.open(this.listPage.map((item) => item.id));

+ 199 - 0
src/views/inspectionStandard/components/EquipmentDialog.vue

@@ -0,0 +1,199 @@
+<template>
+  <el-dialog
+    :visible.sync="equipmentdialog"
+    :before-close="handleClose"
+    :close-on-click-modal="true"
+    :close-on-press-escape="false"
+    append-to-body
+    width="60%"
+  >
+    <div>
+      <el-row>
+        <el-col :span="24" class="table_col" v-if="equipmentdialog">
+          <ele-pro-table
+            ref="equiTable"
+            :columns="columns"
+            :datasource="datasource"
+            :selection.sync="selection"
+            :current.sync="current"
+            highlight-current-row
+            cache-key="systemRoleTable3"
+            @selection-change="selectionChange"
+            @select="select"
+
+
+            row-key="id"
+            height="50vh"
+            @done="onDone"
+          >
+          <template v-slot:files="scope">
+          <el-link
+            v-for="link in scope.row.files"
+            :key="link.id"
+            type="primary"
+            :underline="false"
+            @click="downloadFile(link)"
+          >
+            {{ link.name }}
+          </el-link
+          >
+     
+      </template>
+
+          </ele-pro-table>
+        </el-col>
+      </el-row>
+    </div>
+    <div class="btns">
+      <el-button type="primary" size="small" @click="selected">选择</el-button>
+      <el-button size="small" @click="handleClose">关闭</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { getList,  } from '@/api/inspectionPoint';
+import {getFile} from "@/api/system/file";
+
+export default {
+  components: {},
+  props: {
+    selectList: Array,
+    type: {
+      default: 1 //1多选 2单选
+    }
+  },
+  data() {
+    return {
+      equipmentdialog: false,
+      current: null,
+      columns: [
+        {
+          width: 45,
+          type: 'selection',
+          columnKey: 'selection',
+          align: 'center',
+          reserveSelection: true,
+          show:this.type==1
+        },
+        {
+          width: 45,
+          type: 'index',
+          columnKey: 'index',
+          align: 'center'
+        },
+
+        {
+          prop: 'pointCode',
+          label: '编码'
+        },
+        {
+          label: '名称',
+          prop: 'pointName'
+        },
+        {
+          label: '区域',
+          prop: 'areaName'
+        },
+        
+        {
+          label: '附件',
+          slot: 'files'
+        },
+        {
+          prop: 'createUserName',
+          label: '创建人',
+          align: 'center'
+        },
+
+        {
+          prop: 'createTime',
+          label: '创建时间',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 110
+        },
+      ],
+      categoryLevelId: null,
+      code: null,
+      selection: [],
+      ids:[],
+      oldSelection:[],//存储selection
+    }
+  },
+
+  watch: {},
+  methods: {
+    datasource({ page, where, limit }) {
+      return getList({
+        ...where,
+        pageNum: page,
+        size: limit
+      });
+    },
+    downloadFile(file) {
+      getFile({objectName: file.storePath}, file.name);
+    },
+    open(ids) {
+      this.equipmentdialog = true;
+      this.ids=ids||[]
+    },
+    selectionChange(selection){
+      this.oldSelection.push(...selection)
+    },
+    select(selection, row){
+      if(!selection.find(item=>item.id==row.id)){
+        this.ids= this.ids.filter(item=>item!=row.id) 
+      }else{
+        this.ids.push(row.id)
+      }
+    },
+    onDone(){
+      this.$nextTick(() => {
+        this.$refs.equiTable.setSelectedRowKeys(this.ids);
+      });
+    },
+    handleClose() {
+      this.equipmentdialog = false;
+      this.$refs.equiTable.clearSelection();
+    },
+    // 选择
+    selected() {
+      
+      if(this.type==1){
+        let ids= [...new Set(this.ids)]
+        this.selection=ids.map(item=>this.oldSelection.find(val=>val.id==item))
+      }
+      this.$emit('choose', this.type==1?JSON.parse(JSON.stringify(this.selection)):JSON.parse(JSON.stringify(this.current)));
+      this.handleClose();
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.tree_col {
+  border: 1px solid #eee;
+  padding: 10px 0;
+  box-sizing: border-box;
+  max-height: 530px;
+  overflow: auto;
+}
+.table_col {
+  padding-left: 10px;
+  ::v-deep .el-table th.el-table__cell {
+    background: #f2f2f2;
+  }
+}
+.pagination {
+  text-align: right;
+  padding: 10px 0;
+}
+.btns {
+  text-align: center;
+  padding: 10px 0;
+}
+.topsearch {
+  margin-bottom: 15px;
+}
+</style>

+ 166 - 92
src/views/inspectionStandard/components/edit.vue

@@ -68,99 +68,154 @@
             @click="addParameter"
             >选择工艺参数标准</el-button
           > -->
-          <el-table
-            style="margin-top: 15px"
-            :data="form.parameterStandards"
-            border
-            height="40vh"
-          >
-            <el-table-column :label="form.singleWeightDivision" align="center">
-              <el-table-column
-                label="参数上限"
-                align="center"
-                v-if="form.parameterType == 3"
-              >
-                <template slot-scope="scope">
-                  <el-form-item label-width="0" prop="finalValue">
-                    <el-input
-                      clearable
-                      v-model="scope.row.finalValue"
-                      placeholder="请输入"
-                    />
-                  </el-form-item>
-                </template>
-              </el-table-column>
-              <el-table-column
-                label="参数下限"
-                align="center"
-                v-if="form.parameterType == 3"
+          <el-tabs v-model="activeName" type="card">
+            <el-tab-pane
+              :label="item.name"
+              :name="item.name"
+              v-for="item in activeList"
+              :key="item.name"
+            >
+              <el-table
+                v-show="activeName == '质检项'"
+                style="margin-top: 15px"
+                :data="form.parameterStandards"
+                border
+                height="40vh"
               >
-                <template slot-scope="scope">
-                  <el-form-item label-width="0" prop="initialValue">
-                    <el-input
-                      clearable
-                      v-model="scope.row.initialValue"
-                      placeholder="请输入"
-                    />
-                  </el-form-item>
-                </template>
-              </el-table-column>
-              <el-table-column
-                label="默认值"
-                align="center"
-                v-if="form.parameterType != 3"
+                <el-table-column
+                  :label="form.singleWeightDivision"
+                  align="center"
+                >
+                  <el-table-column
+                    label="参数上限"
+                    align="center"
+                    v-if="form.parameterType == 3"
+                  >
+                    <template slot-scope="scope">
+                      <el-form-item label-width="0" prop="finalValue">
+                        <el-input
+                          clearable
+                          v-model="scope.row.finalValue"
+                          placeholder="请输入"
+                        />
+                      </el-form-item>
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label="参数下限"
+                    align="center"
+                    v-if="form.parameterType == 3"
+                  >
+                    <template slot-scope="scope">
+                      <el-form-item label-width="0" prop="initialValue">
+                        <el-input
+                          clearable
+                          v-model="scope.row.initialValue"
+                          placeholder="请输入"
+                        />
+                      </el-form-item>
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label="默认值"
+                    align="center"
+                    v-if="form.parameterType != 3"
+                  >
+                    <template slot-scope="scope">
+                      <el-form-item label-width="0" prop="defaultValue">
+                        <el-input
+                          clearable
+                          v-model="scope.row.defaultValue"
+                          placeholder="请输入"
+                        />
+                      </el-form-item>
+                    </template>
+                  </el-table-column>
+                </el-table-column>
+                <el-table-column :label="form.tolerance" align="center">
+                  <el-table-column label="质检标准" align="center">
+                    <template slot-scope="scope">
+                      <el-form-item label-width="0" prop="inspectionStandard">
+                        <el-input
+                          clearable
+                          v-model="scope.row.toleranceValue"
+                          placeholder="请输入"
+                        >
+                          <DictSelection
+                            style="width: 100px"
+                            slot="prepend"
+                            clearable
+                            dictName="数学字符"
+                            v-model="scope.row.symbol"
+                          ></DictSelection>
+                        </el-input>
+                        <!-- </el-form-item> -->
+                      </el-form-item>
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="操作" align="center" width="80">
+                    <template slot-scope="scope">
+                      <el-link
+                        type="danger"
+                        :underline="false"
+                        @click="handleDeleteItem(scope.$index, scope.row.id)"
+                      >
+                        删除
+                      </el-link>
+                    </template>
+                  </el-table-column>
+                </el-table-column>
+              </el-table>
+              <el-table
+                v-show="activeName == '质检点'"
+                style="margin-top: 15px"
+                :data="form.linePoints"
+                border
+                height="40vh"
               >
-                <template slot-scope="scope">
-                  <el-form-item label-width="0" prop="defaultValue">
-                    <el-input
-                      clearable
-                      v-model="scope.row.defaultValue"
-                      placeholder="请输入"
-                    />
-                  </el-form-item>
-                </template>
-              </el-table-column>
-            </el-table-column>
-            <el-table-column :label="form.tolerance" align="center">
-              <el-table-column label="质检标准" align="center">
-                <template slot-scope="scope">
-                  <el-form-item label-width="0" prop="inspectionStandard">
-                    <el-input
-                      clearable
-                      v-model="scope.row.toleranceValue"
-                      placeholder="请输入"
+                <el-table-column label="编码" align="center" prop="pointCode">
+                  <template slot-scope="scope">
+                    <el-link
+                      type="primary"
+                      :underline="false"
+                      @click="openEdit('detail', scope.row)"
                     >
-                    <DictSelection
-                      style="width: 100px"
-                      slot="prepend"
-                      clearable
-                      dictName="数学字符"
-                      v-model="scope.row.symbol"
-                    ></DictSelection>
-                    </el-input>
-                    <!-- </el-form-item> -->
-                  </el-form-item>
-                </template>
-              </el-table-column>
-              <el-table-column label="操作" align="center" width="80">
-                <template slot-scope="scope">
-                  <el-link
-                    type="danger"
-                    :underline="false"
-                    @click="handleDeleteItem(scope.$index, scope.row.id)"
-                  >
-                    删除
-                  </el-link>
-                </template>
-              </el-table-column>
-            </el-table-column>
-          </el-table>
+                      {{ scope.row.pointCode }}
+                    </el-link>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="名称"
+                  align="center"
+                  prop="pointName"
+                ></el-table-column>
+                <el-table-column
+                  label="区域"
+                  align="center"
+                  prop="areaName"
+                ></el-table-column>
+
+                <el-table-column label="操作" align="center" width="80">
+                  <template slot-scope="scope">
+                    <el-link
+                      type="danger"
+                      :underline="false"
+                      @click="handleDeleteItem(scope.$index, scope.row.id)"
+                    >
+                      删除
+                    </el-link>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-tab-pane></el-tabs
+          >
+
           <div class="add-product" @click="add">
             <i class="el-icon-circle-plus-outline"></i>
           </div>
         </el-col>
 
-        <!-- <inspectionProjectList v-if="visible" :list="form.inspectionItems" ref="inspectionProjectRef" /> -->
+        <!-- <inspectionProjectList v-if="visible" :linePoints="form.inspectionItems" ref="inspectionProjectRef" /> -->
       </el-row>
     </el-form>
 
@@ -171,19 +226,26 @@
       </el-button>
     </template>
     <standardDialog ref="standardDialogRef" @choose="choose" />
+    <EquipmentDialog ref="equipmentDialogRef" @choose="choose" />
+   
+    <edit ref="edit" ></edit>
   </el-dialog>
+
 </template>
 
 <script>
 import { save, update, getById } from '@/api/inspectionStandard';
 import fileUpload from '@/components/upload/fileUpload';
 import standardDialog from './standardDialog';
-// import EquipmentDialog from '../../../views/inspectionPoint/components/EquipmentDialog';
+import EquipmentDialog from './EquipmentDialog';
+
+import edit from '@/views/inspectionPoint/components/edit';
 
 export default {
   components: {
     fileUpload,
-    standardDialog
+    standardDialog,
+    EquipmentDialog,edit
   },
 
   data() {
@@ -199,6 +261,7 @@ export default {
         singleWeightDivision: '',
         tolerance: '',
         parameterStandards: [],
+        linePoints: [],
         parameterType: ''
       };
     };
@@ -206,7 +269,8 @@ export default {
       defaultForm,
       // 表单数据
       form: { ...defaultForm() },
-
+      activeName: '质检项',
+      activeList: [{ name: '质检项' }, { name: '质检点' }],
       // 表单验证规则
       rules: {
         name: [{ required: true, message: '请输入', trigger: 'blur' }],
@@ -248,8 +312,15 @@ export default {
       }
       this.visible = true;
     },
-
+    openEdit(type, row) {
+      console.log(row)
+      this.$refs.edit.open(type, row);
+    },
     choose(data) {
+      if (this.activeName == '质检点') {
+        this.form.linePoints = data;
+        return;
+      }
       let obj = {
         finalValue: data.parameter?.maxValue,
         initialValue: data.parameter?.minValue,
@@ -261,12 +332,16 @@ export default {
         parameterType: data.parameter?.textType,
         defaultValue: data.parameter?.defaultValue
       };
-      this.form.singleWeightDivision = obj.singleWeightDivision;
-      this.form.tolerance = obj.tolerance;
+      this.$set(this.form, 'singleWeightDivision', obj.singleWeightDivision);
+      this.$set(this.form, 'tolerance', obj.tolerance);
       this.form.parameterType = obj.parameterType;
       this.form.parameterStandards.push(obj);
     },
     add() {
+      if (this.activeName == '质检点') {
+        this.$refs.equipmentDialogRef.open();
+        return;
+      }
       if (!this.form.parameterStandards.length) {
         this.$refs.standardDialogRef.open();
         return;
@@ -310,7 +385,6 @@ export default {
     },
     restForm() {
       this.form = { ...this.defaultForm() };
-      this.list = [];
       this.$nextTick(() => {
         this.$refs.form.clearValidate();
       });

+ 46 - 12
src/views/inspectionWork/components/edit.vue

@@ -22,14 +22,29 @@
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="质检类型:" prop="qualityType">
+          <el-form-item label="类型:" prop="qualityType">
             <DictSelection
-              dictName="质检类型"
+              dictName="质检计划类型"
               v-if="title != '详情'"
               v-model="form.qualityType"
             ></DictSelection>
             <el-input
-              :value="getDictValue('质检类型', form.qualityType)"
+              :value="getDictValue('质检计划类型', form.qualityType)"
+              disabled
+              v-if="title == '详情'"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="质检方式:" prop="qualityMode">
+            <DictSelection
+              dictName="质检方式"
+              v-model="form.qualityMode"
+              clearable
+              v-if="title != '详情'"
+            ></DictSelection>
+            <el-input
+              :value="getDictValue('质检方式', form.qualityMode)"
               disabled
               v-if="title == '详情'"
             />
@@ -160,13 +175,23 @@
             </el-select>
           </el-form-item>
         </el-col>
+        <el-col :span="24">
+          <el-form-item label="附件:" prop="accessory">
+            <fileUpload
+              v-model="form.accessory"
+              module="main"
+              :showLib="false"
+              :limit="1"
+            />
+          </el-form-item>
+        </el-col>
       </el-row>
     </el-form>
 
     <div class="title" v-if="title != '新增'">质检内容</div>
     <el-table border v-if="title != '新增'"> </el-table>
     <div class="title" v-if="title != '新增'">不合格品内容</div>
-    <el-table :data="form.voList" border v-if="title != '新增'" height="25vh" >
+    <el-table :data="form.voList" border v-if="title != '新增'" height="25vh">
       <el-table-column label="序号" align="center" width="60">
         <template slot-scope="scope">
           <span>{{ scope.$index + 1 }}</span>
@@ -221,8 +246,10 @@ import ProductionVersion from './ProductionVersion.vue';
 import dictMixins from '@/mixins/dictMixins';
 import deptSelect from '@/components/CommomSelect/dept-select.vue';
 import { getUserPage } from '@/api/system/organization';
+import fileUpload from '@/components/upload/fileUpload';
+
 export default {
-  components: { ProductionVersion, EquipmentDialog,deptSelect },
+  components: { ProductionVersion, EquipmentDialog, deptSelect, fileUpload },
   mixins: [dictMixins],
 
   data() {
@@ -248,9 +275,11 @@ export default {
         qualityName: '',
         qualityId: '',
         voList: [],
-        groupId:'',
-        groupName:'',
-        id:""
+        groupId: '',
+        groupName: '',
+        id: '',
+        accessory: [],
+        qualityMode: ''
       };
     };
     return {
@@ -273,7 +302,7 @@ export default {
       title: null,
       loading: false,
       produceTaskList: [],
-      executorList:''
+      executorList: ''
     };
   },
 
@@ -284,7 +313,9 @@ export default {
       this.type = type;
       if (this.type != 'add') {
         this.form = JSON.parse(JSON.stringify(row));
-        this.getUserList({ groupId: this.form.groupId });
+        if (this.form.groupId) {
+          this.getUserList({ groupId: this.form.groupId });
+        }
         this.getProduceTaskList();
       }
       this.visible = true;
@@ -308,6 +339,9 @@ export default {
       this.getProduceTaskList();
     },
     async getProduceTaskList() {
+      if (!this.form.produceRoutingId) {
+        return;
+      }
       const res = await getProduceTaskList({
         isDetail: true,
         pageNum: 1,
@@ -330,8 +364,8 @@ export default {
       this.form.specification = data[0].specification;
       this.form.brandNo = data[0].brandNum;
     },
-        //选择部门(搜索)
-        searchDeptNodeClick(info, row) {
+    //选择部门(搜索)
+    searchDeptNodeClick(info, row) {
       if (info) {
         const params = { groupId: info };
         this.getUserList(params);

+ 37 - 11
src/views/inspectionWork/index.vue

@@ -30,7 +30,21 @@
         </template>
 
         <template v-slot:qualityType="{ row }">
-          {{ getDictValue('质检类型', row.qualityType) }}
+          {{ getDictValue('质检计划类型', row.qualityType) }}
+        </template>
+        <template v-slot:qualityMode="{ row }">
+          {{ getDictValue('质检方式', row.qualityMode) }}
+        </template>
+        <template v-slot:accessory="scope">
+          <el-link
+            v-for="link in scope.row.accessory"
+            :key="link.id"
+            type="primary"
+            :underline="false"
+            @click="downloadFile(link)"
+          >
+            {{ link.name }}
+          </el-link>
         </template>
         <!-- 操作列 -->
         <template v-slot:action="{ row }">
@@ -76,7 +90,7 @@ import edit from './components/edit.vue';
 
 import { getList, removeItem } from '@/api/inspectionWork';
 import dictMixins from '@/mixins/dictMixins';
-//   import {getFile} from "@/api/system/file";
+  import {getFile} from "@/api/system/file";
 
 export default {
   mixins: [dictMixins],
@@ -131,15 +145,20 @@ export default {
           label: '牌号',
           align: 'center'
         },
-
         {
-          label: '质检类型',
+          label: '类型',
           prop: 'qualityType',
-          align: 'center',
-          slot:'qualityType'
-       
+          slot: 'qualityType',
+          width: 120
+
         },
+        {
+          label: '质检方式',
+          prop: 'qualityMode',
+          slot: 'qualityMode',
+          width: 120
 
+        },
         {
           prop: 'produceTaskName',
           label: '工序',
@@ -200,6 +219,11 @@ export default {
           width:80
 
         },
+        {
+          label: '附件',
+          prop: 'accessory',
+          slot: 'accessory'
+        },
         {
           prop: 'status',
           label: '状态',
@@ -223,8 +247,10 @@ export default {
     };
   },
   created() {
-    this.requestDict('质检类型');
+    this.requestDict('质检计划类型');
     this.requestDict('不良品处理类型');
+    this.requestDict('质检方式');
+
     
   },
   methods: {
@@ -245,9 +271,9 @@ export default {
       this.$refs.edit.open(type, row);
 
     },
-    //   downloadFile(file) {
-    //     getFile({objectName: file.storePath}, file.name);
-    //   },
+      downloadFile(file) {
+        getFile({objectName: file.storePath}, file.name);
+      },
     remove(row) {
       removeItem([row.id])
         .then((message) => {