Kaynağa Gözat

工序管理新增所属工厂字段

695593266@qq.com 10 ay önce
ebeveyn
işleme
ee90e716b8

+ 147 - 121
src/views/technology/production/components/WorkCenter.vue

@@ -1,30 +1,59 @@
 <template>
-  <el-dialog title="选择工作中心" :visible.sync="centerVisible" :before-close="handleClose" :close-on-click-modal="false"
-    :close-on-press-escape="false" append-to-body width="60%">
+  <el-dialog
+    title="选择工作中心"
+    :visible.sync="centerVisible"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    width="60%"
+  >
     <div>
       <workCenter-search @search="reload" />
       <el-row>
         <el-col :span="24" class="table_col">
-          <el-table :data="tableData" height="520" highlight-current-row @row-click="single">
-            <el-table-column label="工作中心编码" prop="code" width="200"></el-table-column>
+          <el-table
+            :data="tableData"
+            height="520"
+            highlight-current-row
+            @row-click="single"
+          >
+            <el-table-column
+              label="工作中心编码"
+              prop="code"
+              width="200"
+            ></el-table-column>
             <el-table-column label="工作中心名称" prop="name"></el-table-column>
             <el-table-column label="工作中心类别" prop="categoryType">
               <template slot-scope="scope">
                 {{ checkcategoryType(scope.row.categoryType) }}
               </template>
             </el-table-column>
+            <el-table-column
+              label="所属工厂"
+              prop="factoryName"
+            ></el-table-column>
             <el-table-column label="负责人" prop="leaderUserName">
             </el-table-column>
             <el-table-column label="选择" align="center">
               <template slot-scope="scope">
-                <el-radio class="radio" v-model="radio" :label="scope.row.id"><i></i></el-radio>
+                <el-radio class="radio" v-model="radio" :label="scope.row.id"
+                  ><i></i
+                ></el-radio>
               </template>
             </el-table-column>
           </el-table>
           <div class="pagination">
-            <el-pagination background layout="total, sizes, prev, pager, next, jumper" :total="total"
-              :page-sizes="[10, 20, 50, 100]" :page-size="pagination.size" :current-page.sync="pagination.pageNum"
-              @current-change="handleCurrent" @size-change="handleSize">
+            <el-pagination
+              background
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="total"
+              :page-sizes="[10, 20, 50, 100]"
+              :page-size="pagination.size"
+              :current-page.sync="pagination.pageNum"
+              @current-change="handleCurrent"
+              @size-change="handleSize"
+            >
             </el-pagination>
           </div>
         </el-col>
@@ -38,134 +67,131 @@
 </template>
 
 <script>
-import work from '@/api/technology/work';
-import workCenterSearch from './workCenter-search';
-export default {
-  components: {
-    workCenterSearch
-  },
-  data() {
-    return {
-      centerVisible: false,
-      tableData: [],
-      search: {},
-      pagination: {
-        pageNum: 1,
-        size: 10,
+  import work from '@/api/technology/work';
+  import workCenterSearch from './workCenter-search';
+  export default {
+    components: {
+      workCenterSearch
+    },
+    data() {
+      return {
+        centerVisible: false,
+        tableData: [],
+        search: {},
+        pagination: {
+          pageNum: 1,
+          size: 10
+        },
+        where: null,
+        total: 0,
+        radio: '',
+        current: null,
+        categoryTypes: [
+          { label: '设备', value: 0 },
+          { label: '设备组', value: 1 },
+          { label: '人工', value: 2 },
+          { label: '人工组', value: 3 },
+          { label: '生产线', value: 4 },
+          { label: '委外生产', value: 5 }
+        ]
+      };
+    },
+
+    watch: {},
+    methods: {
+      open(item) {
+        if (item) {
+          this.current = {
+            id: item.workCenterId,
+            name: item.workCenterName
+          };
+          this.radio = item.workCenterId;
+        }
+        this.centerVisible = true;
+        this.getList();
       },
-      where: null,
-      total: 0,
-      radio: '',
-      current: null,
-      categoryTypes: [
-        { label: '设备', value: 0 },
-        { label: '设备组', value: 1 },
-        { label: '人工', value: 2 },
-        { label: '人工组', value: 3 },
-        { label: '生产线', value: 4 },
-        { label: '委外生产', value: 5 }
-      ],
-    }
-  },
 
-  watch: {
+      // 单击获取id
+      single(row) {
+        this.current = row;
+        this.radio = row.id;
+      },
 
-  },
-  methods: {
-    open(item) {
-      if (item) {
-        this.current = {
-          id: item.workCenterId,
-          name: item.workCenterName
+      handleClose() {
+        this.centerVisible = false;
+        this.current = null;
+        this.radio = '';
+      },
+      handleCurrent(page) {
+        this.pagination.pageNum = page;
+        this.getList();
+      },
+      handleSize(size) {
+        this.pagination.pageNum = 1;
+        this.pagination.size = size;
+        this.getList();
+      },
+      getList() {
+        let params = { ...this.pagination };
+        if (this.where) {
+          params = { ...this.where };
         }
-        this.radio = item.workCenterId
-      }
-      this.centerVisible = true
-      this.getList()
-    },
-
-    // 单击获取id
-    single(row) {
-      this.current = row
-      this.radio = row.id
-    },
+        work.list(params).then((res) => {
+          this.tableData = res.list;
+          this.total = res.count;
+        });
+      },
 
-    handleClose() {
-      this.centerVisible = false
-      this.current = null
-      this.radio = ''
-    },
-    handleCurrent(page) {
-      this.pagination.pageNum = page
-      this.getList()
-    },
-    handleSize(size) {
-      this.pagination.pageNum = 1
-      this.pagination.size = size
-      this.getList()
-    },
-    getList() {
-      let params = { ...this.pagination }
-      if(this.where) {
-        params = { ...this.where }
-      }
-      work.list(params).then(res => {
-        this.tableData = res.list
-        this.total = res.count
-      })
-    },
+      /* 刷新表格 */
+      reload(where) {
+        this.where = where;
+        this.getList();
+      },
 
-    /* 刷新表格 */
-    reload(where) {
-     this.where = where
-     this.getList()
-    },
+      selected() {
+        if (!this.current) {
+          return this.$message.warning('请选择工作中心');
+        }
+        this.$emit('changeCenter', this.current);
+        this.handleClose();
+      },
 
-    selected() {
-      if (!this.current) {
-        return this.$message.warning('请选择工作中心')
+      /*回显类别 */
+      checkcategoryType(value) {
+        return this.categoryTypes.find((f) => f.value == value).label;
       }
-      this.$emit('changeCenter', this.current)
-      this.handleClose()
-    },
-
-    /*回显类别 */
-    checkcategoryType(value) {
-      return this.categoryTypes.find((f) => f.value == value).label;
-    },
-
-  }
-}
+    }
+  };
 </script>
 
 <style lang="scss" scoped>
-.tree_col {
-  border: 1px solid #eee;
-  padding: 10px 0;
-  box-sizing: border-box;
-  height: 500px;
-  overflow: auto;
-}
+  .tree_col {
+    border: 1px solid #eee;
+    padding: 10px 0;
+    box-sizing: border-box;
+    height: 500px;
+    overflow: auto;
+  }
 
-.table_col {
-  padding-left: 10px;
+  .table_col {
+    padding-left: 10px;
 
-  ::v-deep .el-table th.el-table__cell {
-    background: #f2f2f2;
+    ::v-deep .el-table th.el-table__cell {
+      background: #f2f2f2;
+    }
   }
-}
 
-.pagination {
-  text-align: right;
-  padding: 10px 0;
-}
+  .pagination {
+    text-align: right;
+    padding: 10px 0;
+  }
 
-.btns {
-  text-align: center;
-  padding: 10px 0;
-}
+  .btns {
+    text-align: center;
+    padding: 10px 0;
+  }
 
-.topsearch {
-  margin-bottom: 15px;
-}
+  .topsearch {
+    margin-bottom: 15px;
+  }
 </style>

+ 438 - 269
src/views/technology/production/components/user-edit.vue

@@ -1,13 +1,26 @@
 <!-- 用户编辑弹窗 -->
 <template>
-  <ele-modal width="960px" :visible="visible" :append-to-body="true" :close-on-click-modal="false"
-    custom-class="ele-dialog-form" :title="isUpdate ? '修改工序' : '添加工序'" @update:visible="updateVisible" :maxable="true">
+  <ele-modal
+    width="960px"
+    :visible="visible"
+    :append-to-body="true"
+    :close-on-click-modal="false"
+    custom-class="ele-dialog-form"
+    :title="isUpdate ? '修改工序' : '添加工序'"
+    @update:visible="updateVisible"
+    :maxable="true"
+  >
     <header-title title="基本信息"></header-title>
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <el-row>
         <el-col :span="8">
           <el-form-item label="工序编码:">
-            <el-input  disabled v-model="form.code" clearable placeholder="请输入"></el-input>
+            <el-input
+              disabled
+              v-model="form.code"
+              clearable
+              placeholder="请输入"
+            ></el-input>
           </el-form-item>
           <!-- <el-form-item label="工序编码:" v-else prop="code">
             <el-input :disabled="isUpdate" v-model="form.code" clearable placeholder="请输入" />
@@ -22,28 +35,46 @@
         <el-col :span="8">
           <el-form-item label="控制码:" prop="controlId">
             <el-select v-model="form.controlId" filterable>
-              <el-option v-for="item in controlList" :key="item.id" :label="item.name" :value="item.id">
+              <el-option
+                v-for="item in controlList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              >
               </el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="工作中心:" prop="workCenterName">
-            <el-input @click.native="chooseWorkCenter" v-model="form.workCenterName" readonly />
+            <el-input
+              @click.native="chooseWorkCenter"
+              v-model="form.workCenterName"
+              readonly
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="8">
+          <el-form-item label="所属工厂:" prop="factoriesName">
+            <el-input v-model="form.factoriesName" readonly disabled />
           </el-form-item>
         </el-col>
 
         <el-col :span="8">
           <el-form-item label="工序类型:" prop="type">
             <el-select v-model="form.type" filterable>
-              <el-option :label="item.label" :value="item.value" v-for="(item, index) in typeList" :key="index">
+              <el-option
+                :label="item.label"
+                :value="item.value"
+                v-for="(item, index) in typeList"
+                :key="index"
+              >
               </el-option>
-
             </el-select>
           </el-form-item>
         </el-col>
 
-
         <el-col :span="8">
           <el-form-item label="排序:" prop="sort">
             <el-input v-model="form.sort" />
@@ -54,50 +85,69 @@
             <fileUpload v-model="form.files"></fileUpload>
           </el-form-item>
         </el-col>
-
       </el-row>
 
       <header-title title="工序节拍时间"></header-title>
 
-
       <el-row>
         <el-col :span="12">
           <el-form-item label="节拍生产数量" prop="beatProduceNum">
             <el-row>
               <el-col :span="16">
-                <el-input placeholder="请输入" type="number" v-model="form.workBeat.beatProduceNum">
-                </el-input></el-col>
+                <el-input
+                  placeholder="请输入"
+                  type="number"
+                  v-model="form.workBeat.beatProduceNum"
+                >
+                </el-input
+              ></el-col>
               <el-col :span="1">&nbsp;</el-col>
               <el-col :span="7">
-                <DictSelection dictName="计量单位" v-model="form.workBeat.beatProduceUnit" />
+                <DictSelection
+                  dictName="计量单位"
+                  v-model="form.workBeat.beatProduceUnit"
+                />
               </el-col>
             </el-row>
           </el-form-item>
         </el-col>
 
-
-
-
-
         <el-col :span="8">
           <el-form-item label="工序休息时长:">
-            <el-input v-model="form.workBeat.restTimes" placeholder="请输入"  type="number" />
+            <el-input
+              v-model="form.workBeat.restTimes"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
 
         <el-col :span="8">
           <el-form-item label="工序准备时长:">
-            <el-input v-model="form.workBeat.preTimes" clearable placeholder="请输入"  type="number" />
+            <el-input
+              v-model="form.workBeat.preTimes"
+              clearable
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="设备生产时长:">
-            <el-input v-model="form.workBeat.proTimes" placeholder="请输入"  type="number" />
+            <el-input
+              v-model="form.workBeat.proTimes"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="其他时长:">
-            <el-input placeholder="请输入" v-model="form.workBeat.otherTimes"  type="number" />
+            <el-input
+              placeholder="请输入"
+              v-model="form.workBeat.otherTimes"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -107,67 +157,103 @@
         </el-col>
 
         <el-col :span="8">
-          <el-form-item label="节拍时间单位:" >
+          <el-form-item label="节拍时间单位:">
             <el-select v-model="form.workBeat.beatTimesUnit">
-              <el-option v-for="item in timeType2" :key="item.code" :label="item.label" :value="item.code">
+              <el-option
+                v-for="item in timeType2"
+                :key="item.code"
+                :label="item.label"
+                :value="item.code"
+              >
               </el-option>
             </el-select>
           </el-form-item>
         </el-col>
-
       </el-row>
 
       <header-title title="工序间隔时间"></header-title>
 
       <el-row>
-
         <el-col :span="12">
           <el-form-item label="间隔策略:" label-width="200px">
             <el-select v-model="form.intervalTime.tactics" filterable>
-              <el-option v-for="item in tacticsType" :key="item.code" :label="item.label" :value="item.code">
+              <el-option
+                v-for="item in tacticsType"
+                :key="item.code"
+                :label="item.label"
+                :value="item.code"
+              >
               </el-option>
             </el-select>
           </el-form-item>
         </el-col>
 
         <el-col :span="8">
-          <el-form-item label="间隔时间单位:" >
+          <el-form-item label="间隔时间单位:">
             <el-select v-model="form.timeUnit">
-              <el-option v-for="item in timeType" :key="item.code" :label="item.label" :value="item.code">
+              <el-option
+                v-for="item in timeType"
+                :key="item.code"
+                :label="item.label"
+                :value="item.code"
+              >
               </el-option>
             </el-select>
           </el-form-item>
         </el-col>
 
-
         <el-col :span="12">
           <el-form-item label="下工序标准准备时间:" label-width="200px">
-            <el-input v-model="form.intervalTime.nextStandardPreTime" placeholder="请输入" type="number" />
+            <el-input
+              v-model="form.intervalTime.nextStandardPreTime"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="下工序最短准备时间:" label-width="200px">
-            <el-input v-model="form.intervalTime.nextShortPreTime" placeholder="请输入" type="number" />
+            <el-input
+              v-model="form.intervalTime.nextShortPreTime"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="本工序标准等待时间:" label-width="200px">
-            <el-input v-model="form.intervalTime.thisStandardWaitTime" placeholder="请输入" type="number" />
+            <el-input
+              v-model="form.intervalTime.thisStandardWaitTime"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="本工序最短准备时间:" label-width="200px">
-            <el-input v-model="form.intervalTime.thisShortPreTime" placeholder="请输入" type="number" />
+            <el-input
+              v-model="form.intervalTime.thisShortPreTime"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="本工序结束后标准周转时间:" label-width="200px">
-            <el-input v-model="form.intervalTime.thisStandardBoatTime" placeholder="请输入" type="number" />
+            <el-input
+              v-model="form.intervalTime.thisStandardBoatTime"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="本工序结束后周转最短时间:" label-width="200px">
-            <el-input v-model="form.intervalTime.thisShortBoatTime" placeholder="请输入" type="number" />
+            <el-input
+              v-model="form.intervalTime.thisShortBoatTime"
+              placeholder="请输入"
+              type="number"
+            />
           </el-form-item>
         </el-col>
       </el-row>
@@ -175,11 +261,15 @@
       <header-title title="工序配置"></header-title>
 
       <el-row>
-
         <el-col :span="12">
           <el-form-item label="投料是否要添加周转车:" label-width="200px">
             <el-radio-group v-model="form.feedNeedTurnover">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
@@ -187,7 +277,12 @@
         <el-col :span="12">
           <el-form-item label="报工是否要添加周转车:" label-width="200px">
             <el-radio-group v-model="form.reportNeedTurnover">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
@@ -195,7 +290,12 @@
         <el-col :span="12">
           <el-form-item label="是否需要投料再报工:" label-width="200px">
             <el-radio-group v-model="form.reportNeedFeed">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
@@ -204,15 +304,24 @@
         <el-col :span="12">
           <el-form-item label="投料是否要添加生产设备:" label-width="200px">
             <el-radio-group v-model="form.feedNeedEquipment">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
-
         </el-col>
         <el-col :span="12">
           <el-form-item label="报工是否要添加生产设备:" label-width="200px">
             <el-radio-group v-model="form.reportNeedEquipment">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
@@ -220,58 +329,97 @@
         <el-col :span="12">
           <el-form-item label="投料是否要添加模具:" label-width="200px">
             <el-radio-group v-model="form.feedNeedMould">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加舟皿:" label-width="200px">
             <el-radio-group v-model="form.feedNeedBoat">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加消耗材料:" label-width="200px">
             <el-radio-group v-model="form.feedNeedConsumableMaterial">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加物料:" label-width="200px">
             <el-radio-group v-model="form.feedNeedMateriel">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
 
-
         <el-col :span="12">
           <el-form-item label="投料是否要添加产品:" label-width="200px">
             <el-radio-group v-model="form.feedNeedProduct">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加半成品:" label-width="200px">
             <el-radio-group v-model="form.feedNeedSemiProduct">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加废品:" label-width="200px">
             <el-radio-group v-model="form.feedNeedJunkProduct">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加返工反修品:" label-width="200px">
             <el-radio-group v-model="form.feedNeedReworkProduct">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
@@ -279,40 +427,64 @@
         <el-col :span="12">
           <el-form-item label="投料是否要添加干燥区:" label-width="200px">
             <el-radio-group v-model="form.feedNeedAridRegion">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加生产辅助设备:" label-width="200px">
             <el-radio-group v-model="form.feedNeedAuxiliaryEquipment">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否要添加仪表计量设备:" label-width="200px">
             <el-radio-group v-model="form.feedNeedMeasuringEquipment">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="投料是否需要质检:" label-width="200px">
             <el-radio-group v-model="form.feedNeedQuality">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="生产质检是否需要处置再报工:" label-width="200px">
             <el-radio-group v-model="form.isReportProcessProduce">
-              <el-radio :label="item.value" v-for="(item, i) in radioList" :key="i">{{ item.name }}</el-radio>
+              <el-radio
+                :label="item.value"
+                v-for="(item, i) in radioList"
+                :key="i"
+                >{{ item.name }}</el-radio
+              >
             </el-radio-group>
           </el-form-item>
         </el-col>
       </el-row>
-
     </el-form>
 
     <template v-slot:footer>
@@ -323,236 +495,233 @@
     </template>
 
     <!-- 工作中心弹窗 -->
-    <WorkCenter ref="centerRefs" @changeCenter='determineChoose' />
+    <WorkCenter ref="centerRefs" @changeCenter="determineChoose" />
   </ele-modal>
 </template>
 
 <script>
-import producetask from '@/api/technology/production';
-import WorkCenter from './WorkCenter.vue';
-import fileUpload from '@/components/addDoc/fileUpload.vue'
-import { pageList } from '@/api/technology/version/version.js';
-
-export default {
-  components: {
-    WorkCenter,
-    fileUpload
-  },
-  props: {
-    // 弹窗是否打开
-    visible: Boolean,
-    // 修改回显的数据
-    data: Object,
-    controlList: Array,
-    typeList: Array
-  },
-  data() {
-
-    const defaultForm = function () {
+  import producetask from '@/api/technology/production';
+  import WorkCenter from './WorkCenter.vue';
+  import fileUpload from '@/components/addDoc/fileUpload.vue';
+  import { pageList } from '@/api/technology/version/version.js';
+
+  export default {
+    components: {
+      WorkCenter,
+      fileUpload
+    },
+    props: {
+      // 弹窗是否打开
+      visible: Boolean,
+      // 修改回显的数据
+      data: Object,
+      controlList: Array,
+      typeList: Array
+    },
+    data() {
+      const defaultForm = function () {
+        return {
+          id: null,
+          code: '',
+          name: '',
+          controlId: '',
+          type: 1,
+          workCenterId: '',
+          workCenterName: '',
+          produceVersionId: '',
+          timeUnit: '',
+          factoriesId: '',
+          factoriesName: '',
+          feedNeedTurnover: '',
+          reportNeedTurnover: '',
+          reportNeedFeed: '',
+          feedNeedEquipment: '',
+          reportNeedEquipment: '',
+          feedNeedMould: '',
+          feedNeedBoat: '',
+          feedNeedConsumableMaterial: '',
+          feedNeedMateriel: '',
+          feedNeedProduct: '',
+          feedNeedSemiProduct: '',
+          feedNeedJunkProduct: '',
+          feedNeedReworkProduct: '',
+          feedNeedAridRegion: '',
+          feedNeedAuxiliaryEquipment: '',
+          feedNeedMeasuringEquipment: '',
+          feedNeedQuality: '',
+          isReportProcessProduce: '',
+          sort: null,
+          intervalTime: {
+            nextShortPreTime: '', // 时间单位转换后的下一个短周期的时间,格式为YYYY-MM-DDTHH'
+            nextStandardPreTime: '', // 时间单位转换后的下一个正式的周期的时间,格式为YYYY-MM-DD'
+            tactics: 1, // 周期工艺描述,格式为JSON字符串或数组形式的对象形式的数据类
+            thisShortBoatTime: '',
+            thisShortPreTime: '',
+            thisStandardBoatTime: '',
+            thisStandardWaitTime: ''
+          },
+
+          workBeat: {
+            beatProduceNum: '',
+            beatProduceUnit: '',
+            categoryNum: '',
+            categoryUnit: '',
+            beatTimes: '',
+            otherTimes: '',
+            preTimes: '',
+            proTimes: '',
+            restTimes: '',
+            beatTimesUnit: ''
+          }
+        };
+      };
       return {
-        id: null,
-        code: '',
-        name: '',
-        controlId: '',
-        type: 1,
-        workCenterId: '',
-        workCenterName: '',
-        produceVersionId:'',
-        timeUnit: '',
-        feedNeedTurnover: '',
-        reportNeedTurnover: '',
-        reportNeedFeed:'',
-        feedNeedEquipment: '',
-        reportNeedEquipment: '',
-        feedNeedMould: '',
-        feedNeedBoat: '',
-        feedNeedConsumableMaterial: '',
-        feedNeedMateriel: '',
-        feedNeedProduct: '',
-        feedNeedSemiProduct: '',
-        feedNeedJunkProduct: '',
-        feedNeedReworkProduct: '',
-        feedNeedAridRegion: '',
-        feedNeedAuxiliaryEquipment: '',
-        feedNeedMeasuringEquipment: '',
-        feedNeedQuality: '',
-        isReportProcessProduce:'',
-        sort: null,
-        intervalTime: {
-          nextShortPreTime: '', // 时间单位转换后的下一个短周期的时间,格式为YYYY-MM-DDTHH'
-          nextStandardPreTime: '', // 时间单位转换后的下一个正式的周期的时间,格式为YYYY-MM-DD'
-          tactics: 1, // 周期工艺描述,格式为JSON字符串或数组形式的对象形式的数据类
-          thisShortBoatTime: '',
-          thisShortPreTime: '',
-          thisStandardBoatTime: '',
-          thisStandardWaitTime: ''
-        },
-
-        workBeat: {
-          beatProduceNum: '',
-          beatProduceUnit: '',
-          categoryNum: '',
-          categoryUnit: '',
-          beatTimes: '',
-          otherTimes: '',
-          preTimes: '',
-          proTimes: '',
-          restTimes: '',
-          beatTimesUnit: ''
-        }
-      }
-    }
-    return {
-      defaultForm,
-      // 表单数据
-      form: defaultForm(),
-
-      timeType: [
-        { code: 1, label: '分' },
-        { code: 2, label: '时' }
-      ],
-      radioList: [
-        {
-          name: '是',
-          value: 1
-        },
-        {
-          name: '否',
-          value: 0
-        }
-      ],
-
-      timeType2: [
-        { code: '1', label: '分' },
-        { code: '2', label: '时' }
-      ],
+        defaultForm,
+        // 表单数据
+        form: defaultForm(),
 
-
-      tacticsType: [
-        { code: 1, label: '标准时间' },
-        { code: 2, label: '最短时间' }
-      ],
-
-
-
-
-      // 表单验证规则
-      rules: {
-        name: [
-          { required: true, message: '请输入工序名称', trigger: 'blur' }
-        ],
-        code: [{ required: true, trigger: 'change', message: '工序编码', }],
-        controlId: [
-          { required: true, message: '请选择控制码', trigger: 'blur' }
+        timeType: [
+          { code: 1, label: '分' },
+          { code: 2, label: '时' }
         ],
-        workCenterName: [
-          { required: true, message: '请选择工作中心', trigger: 'change' }
+        radioList: [
+          {
+            name: '是',
+            value: 1
+          },
+          {
+            name: '否',
+            value: 0
+          }
         ],
-        'workBeat.beatTimesUnit': [
-          { required: true, message: '请选择时间单位', trigger: 'change' }
+
+        timeType2: [
+          { code: '1', label: '分' },
+          { code: '2', label: '时' }
         ],
-        timeUnit: [
-          { required: true, message: '请选择间隔时间单位', trigger: 'change' }
-        ]
-      },
-      // 提交状态
-      loading: false,
-      // 是否是修改
-      isUpdate: false,
-      chooseItem: null,
-    };
-  },
-  computed: {
-    
-    totalTime() {
-      let to =
-        (-this.form.workBeat.restTimes +
-          -this.form.workBeat.preTimes +
-          -this.form.workBeat.proTimes +
-          -this.form.workBeat.otherTimes) *
-        -1;
-      return to;
-    },
-    // 是否开启响应式布局
-    styleResponsive() {
-      return this.$store.state.theme.styleResponsive;
-    }
-  },
-  methods: {
-    async getVersionList() {
-      const res = await pageList({
-        pageNum: 1,
-        size: 100
-      });
 
-      this.versionList = res.list;
+        tacticsType: [
+          { code: 1, label: '标准时间' },
+          { code: 2, label: '最短时间' }
+        ],
 
+        // 表单验证规则
+        rules: {
+          name: [
+            { required: true, message: '请输入工序名称', trigger: 'blur' }
+          ],
+          code: [{ required: true, trigger: 'change', message: '工序编码' }],
+          controlId: [
+            { required: true, message: '请选择控制码', trigger: 'blur' }
+          ],
+          workCenterName: [
+            { required: true, message: '请选择工作中心', trigger: 'change' }
+          ],
+          'workBeat.beatTimesUnit': [
+            { required: true, message: '请选择时间单位', trigger: 'change' }
+          ],
+          timeUnit: [
+            { required: true, message: '请选择间隔时间单位', trigger: 'change' }
+          ]
+        },
+        // 提交状态
+        loading: false,
+        // 是否是修改
+        isUpdate: false,
+        chooseItem: null
+      };
     },
-    chooseWorkCenter() {
-      this.$refs.centerRefs.open(this.form)
-    },
-    determineChoose(row) {
-      this.$set(this.form, 'workCenterName', row.name)
-      this.$set(this.form, 'workCenterId', row.id)
+    computed: {
+      totalTime() {
+        let to =
+          (-this.form.workBeat.restTimes +
+            -this.form.workBeat.preTimes +
+            -this.form.workBeat.proTimes +
+            -this.form.workBeat.otherTimes) *
+          -1;
+        return to;
+      },
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
     },
-    /* 保存编辑 */
-    save() {
-      this.$refs.form.validate((valid) => {
-        if (!valid) {
-          return false;
-        }
-        if (!this.isUpdate) {
-          delete this.form.id;
-        }
-
-        this.form.workBeat.beatTimes = this.totalTime;
-
-        this.loading = true;
-        producetask
-          .save(this.form)
-          .then((msg) => {
-            this.loading = false;
-            this.$message.success(
-              (this.isUpdate ? '修改' : '新建') + msg.message
-            );
-            this.updateVisible(false);
-            this.$emit('done');
-          })
-          .catch((e) => {
-            this.loading = false;
-            // this.$message.error(e.message);
-          });
-      });
+    methods: {
+      async getVersionList() {
+        const res = await pageList({
+          pageNum: 1,
+          size: 100
+        });
+
+        this.versionList = res.list;
+      },
+      chooseWorkCenter() {
+        this.$refs.centerRefs.open(this.form);
+      },
+      determineChoose(row) {
+        this.$set(this.form, 'factoriesId', row.factoryId);
+        this.$set(this.form, 'factoriesName', row.factoryName);
+        this.$set(this.form, 'workCenterName', row.name);
+        this.$set(this.form, 'workCenterId', row.id);
+      },
+      /* 保存编辑 */
+      save() {
+        this.$refs.form.validate((valid) => {
+          if (!valid) {
+            return false;
+          }
+          if (!this.isUpdate) {
+            delete this.form.id;
+          }
+
+          this.form.workBeat.beatTimes = this.totalTime;
+
+          this.loading = true;
+          producetask
+            .save(this.form)
+            .then((msg) => {
+              this.loading = false;
+              this.$message.success(
+                (this.isUpdate ? '修改' : '新建') + msg.message
+              );
+              this.updateVisible(false);
+              this.$emit('done');
+            })
+            .catch((e) => {
+              this.loading = false;
+              // this.$message.error(e.message);
+            });
+        });
+      },
+      /* 更新visible */
+      updateVisible(value) {
+        this.form = { ...this.defaultForm() };
+        this.$emit('update:visible', value);
+      }
     },
-    /* 更新visible */
-    updateVisible(value) {
-      this.form = { ...this.defaultForm() };
-      this.$emit('update:visible', value);
-    }
-  },
 
-  watch: {
-    async visible(visible) {
-      if (visible) {
-        this.getVersionList();
-        console.log(this.form, 'this.form');
-        if (this.data) {
-          const res = await producetask.getById(this.data.id);
-
-          this.$util.assignObject(this.form, {
-            ...res
-          });
-
-          this.isUpdate = true;
+    watch: {
+      async visible(visible) {
+        if (visible) {
+          this.getVersionList();
+          console.log(this.form, 'this.form');
+          if (this.data) {
+            const res = await producetask.getById(this.data.id);
+
+            this.$util.assignObject(this.form, {
+              ...res
+            });
+
+            this.isUpdate = true;
+          } else {
+            this.form = { ...this.defaultForm() };
+            this.isUpdate = false;
+          }
         } else {
+          this.$refs.form.clearValidate();
           this.form = { ...this.defaultForm() };
-          this.isUpdate = false;
         }
-      } else {
-        this.$refs.form.clearValidate();
-        this.form = { ...this.defaultForm() };
       }
     }
-  }
-};
+  };
 </script>

+ 7 - 1
src/views/technology/production/index.vue

@@ -213,7 +213,13 @@
             showOverflowTooltip: true,
             minWidth: 110
           },
-
+          {
+            prop: 'factoriesName',
+            label: '所属工厂',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
           {
             columnKey: 'action',
             label: '操作',

+ 64 - 2
src/views/technology/route/components/production/components/user-search.vue

@@ -17,6 +17,25 @@
           <el-input clearable v-model.trim="where.name" placeholder="请输入" />
         </el-form-item>
       </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 6 }">
+        <el-form-item label="所属工厂:">
+          <el-select
+            v-model="where.factoriesId"
+            placeholder="请选择"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="item in factoryList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
       <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="性别:">
           <el-select
@@ -49,18 +68,28 @@
 </template>
 
 <script>
+  import route from '@/api/technology/route';
   export default {
+    props: {
+      taskInfo: {
+        type: Object,
+        defalut: () => {}
+      }
+    },
+
     data() {
       // 默认表单数据
       const defaultWhere = {
         code: '',
-        name: ''
+        name: '',
+        factoriesId: ''
         // nickname: '',
         // sex: undefined
       };
       return {
         // 表单数据
-        where: { ...defaultWhere }
+        where: { ...defaultWhere },
+        factoryList: []
       };
     },
     computed: {
@@ -69,6 +98,13 @@
         return this.$store.state.theme.styleResponsive;
       }
     },
+    mounted() {
+      this.getFactoryList();
+      const data = this.deepCopy(this.taskInfo);
+      this.where.factoriesId = data.factoryId;
+      this.search();
+    },
+
     methods: {
       /* 搜索 */
       search() {
@@ -78,6 +114,32 @@
       reset() {
         this.where = { ...this.defaultWhere };
         this.search();
+      },
+
+      deepCopy(obj, hash = new WeakMap()) {
+        if (obj === null) return null;
+        if (obj instanceof Date) return new Date(obj);
+        if (obj instanceof RegExp) return new RegExp(obj);
+        if (typeof obj !== 'object' && typeof obj !== 'function') return obj;
+        if (hash.has(obj)) return hash.get(obj);
+
+        const result = Array.isArray(obj) ? [] : {};
+        hash.set(obj, result);
+
+        return Object.keys(obj).reduce((acc, key) => {
+          acc[key] = this.deepCopy(obj[key], hash);
+          return acc;
+        }, result);
+      },
+
+      //获取工厂列表
+      async getFactoryList() {
+        const res = await route.Flist({
+          pageNum: 1,
+          size: -1,
+          type: 1
+        });
+        this.factoryList = res.list;
       }
     }
   };

+ 223 - 201
src/views/technology/route/components/production/index.vue

@@ -2,234 +2,256 @@
   <div class="ele-body">
     <el-card shadow="never">
       <!-- 搜索表单 -->
-      <user-search @search="reload" />
+      <user-search @search="reload" :taskInfo="taskInfo" />
       <!-- 数据表格 -->
-    
-      <ele-pro-table ref="table" :columns="columns" :datasource="datasource"  highlight-current-row @selection-change="selectListChange"
-        row-key="id">
+
+      <ele-pro-table
+        ref="table"
+        :columns="columns"
+        :datasource="datasource"
+        highlight-current-row
+        @selection-change="selectListChange"
+        row-key="id"
+      >
         <!-- 状态列 -->
 
         <!-- 操作列 -->
       </ele-pro-table>
     </el-card>
     <!-- 编辑弹窗 -->
-    <user-edit :visible.sync="showEdit" :data="current" @done="reload" ref="userEdit" />
+    <user-edit
+      :visible.sync="showEdit"
+      :data="current"
+      @done="reload"
+      ref="userEdit"
+    />
     <!-- 配置工艺参数 -->
-    <user-setting :visible.sync="showSetting" :data="current" ref="userSetting" />
+    <user-setting
+      :visible.sync="showSetting"
+      :data="current"
+      ref="userSetting"
+    />
   </div>
 </template>
 
 <script>
-import UserSearch from './components/user-search.vue';
-import UserEdit from './components/user-edit.vue';
-import UserSetting from './components/user-setting.vue';
-
-import producetask from '@/api/technology/production';
-
-export default {
-  name: 'technologyProduction',
-  components: {
-    UserSearch,
-    UserEdit,
-    UserSetting
-  },
-  props: {
-    tableData: {
-      type: Array,
-      default: () => []
+  import UserSearch from './components/user-search.vue';
+  import UserEdit from './components/user-edit.vue';
+  import UserSetting from './components/user-setting.vue';
+
+  import producetask from '@/api/technology/production';
+  import route from '@/api/technology/route';
+
+  export default {
+    name: 'technologyProduction',
+    components: {
+      UserSearch,
+      UserEdit,
+      UserSetting
     },
+    props: {
+      tableData: {
+        type: Array,
+        default: () => []
+      },
+
+      isRadio: {
+        type: Boolean,
+        default: false
+      },
+      taskInfo: {
+        type: Object,
+        default: () => {}
+      }
+    },
+    data() {
+      return {
+        // 表格列配置
+        columns: [
+          {
+            columnKey: 'selection',
+            type: 'selection',
+            width: 45,
+            align: 'center',
+            selectable: (row, index) => {
+              return !this.tableData.some(
+                (it) => it.sourceTaskId == row.id || it.id == row.id
+              );
+            },
+            reserveSelection: true,
+            fixed: 'left'
+          },
 
-    isRadio: {
-      type: Boolean,
-      default: false
-    }
-
-
+          {
+            prop: 'code',
+            label: '工序编码',
+            // sortable: 'custom',
+            showOverflowTooltip: true,
+            align: 'center',
 
-  },
-  data() {
-    return {
-      // 表格列配置
-      columns: [
-        {
-          columnKey: 'selection',
-          type: 'selection',
-          width: 45,
-          align: 'center',
-          selectable: (row, index) => {
-            return !this.tableData.some((it) => it.sourceTaskId == row.id || it.id == row.id);
+            minWidth: 110
           },
-          reserveSelection: true,
-          fixed: 'left'
-        },
-
-
-
-        {
-          prop: 'code',
-          label: '工序编码',
-          // sortable: 'custom',
-          showOverflowTooltip: true,
-          align: 'center',
-
-          minWidth: 110
-        },
-        {
-          prop: 'name',
-          label: '工序名称',
-          showOverflowTooltip: true,
-          align: 'center',
-          minWidth: 110
-        },
-        {
-          align: 'center',
-          prop: 'controlName',
-          label: '工序控制码',
-          showOverflowTooltip: true,
-          minWidth: 110
-        },
-        {
-          prop: 'workCenterName',
-          label: '所属工作中心',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 110
-        }
-      ],
-      // 表格选中数据
-      selection: [],
-      // 当前编辑数据
-      current: null,
-      // 是否显示编辑弹窗
-      showEdit: false,
-      // 是否显示参数弹窗
-      showSetting: false,
-
-      rowData: []
-    };
-  },
-
-  mounted() {
-   
-  },
-
-  methods: {
-    /*配置工艺参数 */
-    openSetting(row) {
-      this.current = row;
-      this.showSetting = true;
-    },
-    /* 表格数据源 */
-    async datasource({ page, limit, where, order }) {
-      const res = await producetask.list({
-        ...where,
-        ...order,
-        pageNum: page,
-        isDetail: true,
-        size: limit
-      });
-      return res;
+          {
+            prop: 'name',
+            label: '工序名称',
+            showOverflowTooltip: true,
+            align: 'center',
+            minWidth: 110
+          },
+          {
+            align: 'center',
+            prop: 'controlName',
+            label: '工序控制码',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'workCenterName',
+            label: '所属工作中心',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'factoriesName',
+            label: '所属工厂',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          }
+        ],
+        // 表格选中数据
+        selection: [],
+        // 当前编辑数据
+        current: null,
+        // 是否显示编辑弹窗
+        showEdit: false,
+        // 是否显示参数弹窗
+        showSetting: false,
+
+        rowData: [],
+        factoryList: []
+      };
     },
 
-    /* 刷新表格 */
-    reload(where) {
-      this.$refs.table.reload({ page: 1, where: where });
-    },
-    /* 打开编辑弹窗 */
-    openEdit(row) {
-      this.current = row;
-      this.showEdit = true;
-      this.$refs.userEdit.$refs.form &&
-        this.$refs.userEdit.$refs.form.clearValidate();
+    mounted() {
+      this.getFactoryList();
     },
 
-    /* 删除 */
-    remove(row) {
-      const loading = this.$loading({ lock: true });
-
-      producetask
-        .delete([row.id])
-        .then((msg) => {
-          loading.close();
-          this.$message.success('删除' + msg);
-          this.reload();
-        })
-        .catch((e) => {
-          loading.close();
-          // this.$message.error(e.message);
+    methods: {
+      //获取工厂列表
+      async getFactoryList() {
+        const res = await route.Flist({
+          pageNum: 1,
+          size: -1,
+          type: 1
         });
-    },
-    /* 批量删除 */
-    removeBatch() {
-      if (!this.selection.length) {
-        this.$message.error('请至少选择一条数据');
-        return;
-      }
-      this.$confirm('确定要删除选中的工序吗?', '提示', {
-        type: 'warning'
-      })
-        .then(() => {
-          const loading = this.$loading({ lock: true });
-          producetask
-            .delete(this.selection.map((d) => d.id))
-            .then((msg) => {
-              loading.close();
-              this.$message.success('删除' + msg);
-              this.reload();
-            })
-            .catch((e) => {
-              loading.close();
-
-
-
-
-
-
-              // this.$message.error(e.message);
-            });
+        this.factoryList = res.list;
+      },
+
+      /*配置工艺参数 */
+      openSetting(row) {
+        this.current = row;
+        this.showSetting = true;
+      },
+      /* 表格数据源 */
+      async datasource({ page, limit, where, order }) {
+        const res = await producetask.list({
+          ...where,
+          ...order,
+          pageNum: page,
+          isDetail: true,
+          size: limit
+        });
+        return res;
+      },
+
+      /* 刷新表格 */
+      reload(where) {
+        this.$refs.table.reload({ page: 1, where: where });
+      },
+      /* 打开编辑弹窗 */
+      openEdit(row) {
+        this.current = row;
+        this.showEdit = true;
+        this.$refs.userEdit.$refs.form &&
+          this.$refs.userEdit.$refs.form.clearValidate();
+      },
+
+      /* 删除 */
+      remove(row) {
+        const loading = this.$loading({ lock: true });
+
+        producetask
+          .delete([row.id])
+          .then((msg) => {
+            loading.close();
+            this.$message.success('删除' + msg);
+            this.reload();
+          })
+          .catch((e) => {
+            loading.close();
+            // this.$message.error(e.message);
+          });
+      },
+      /* 批量删除 */
+      removeBatch() {
+        if (!this.selection.length) {
+          this.$message.error('请至少选择一条数据');
+          return;
+        }
+        this.$confirm('确定要删除选中的工序吗?', '提示', {
+          type: 'warning'
         })
-        .catch(() => { });
-    },
-
-    // 表格某一行的单击事件
-    selectListChange(selection) {
-      if (this.isRadio) {
-        if (Array.isArray(selection) && selection.length > 1) {//点击勾选框
-          this.$refs.table.toggleRowSelection(selection[0], false);
-          this.$refs.table.toggleRowSelection(selection[1], true);
-
-        } else if (!Array.isArray(selection)) {//点击行
-          this.$refs.table.toggleRowSelection(selection, false);
-          this.$refs.table.toggleRowSelection(selection, true);
-
+          .then(() => {
+            const loading = this.$loading({ lock: true });
+            producetask
+              .delete(this.selection.map((d) => d.id))
+              .then((msg) => {
+                loading.close();
+                this.$message.success('删除' + msg);
+                this.reload();
+              })
+              .catch((e) => {
+                loading.close();
+
+                // this.$message.error(e.message);
+              });
+          })
+          .catch(() => {});
+      },
+
+      // 表格某一行的单击事件
+      selectListChange(selection) {
+        if (this.isRadio) {
+          if (Array.isArray(selection) && selection.length > 1) {
+            //点击勾选框
+            this.$refs.table.toggleRowSelection(selection[0], false);
+            this.$refs.table.toggleRowSelection(selection[1], true);
+          } else if (!Array.isArray(selection)) {
+            //点击行
+            this.$refs.table.toggleRowSelection(selection, false);
+            this.$refs.table.toggleRowSelection(selection, true);
+          } else {
+            this.rowData = [];
+            this.rowData = Array.isArray(selection) ? selection[0] : selection;
+          }
         } else {
-          this.rowData = []
-          this.rowData = Array.isArray(selection) ? selection[0] : selection;
+          this.selection = selection;
         }
-      } else {
-        this.selection = selection
-      }
-
-
-
-    },
-
-    getRowData() {
-      return this.rowData
-    },
-
-
-
+      },
 
-
-  }
-};
+      getRowData() {
+        return this.rowData;
+      }
+    }
+  };
 </script>
 
 <style lang="scss" scoped>
-:deep(.el-checkbox__input.is-disabled) {
-  .el-checkbox__inner {
-    background-color: rgba(142, 128, 128, 0.584) !important;
+  :deep(.el-checkbox__input.is-disabled) {
+    .el-checkbox__inner {
+      background-color: rgba(142, 128, 128, 0.584) !important;
+    }
   }
-}
 </style>

+ 7 - 0
src/views/technology/route/components/user-detail.vue

@@ -219,6 +219,13 @@
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 110
+          },
+          {
+            prop: 'factoriesName',
+            label: '所属工厂',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
           }
         ]
       };

+ 18 - 3
src/views/technology/route/components/user-taskinstance.vue

@@ -56,14 +56,19 @@
     </div>
 
     <ele-modal
-      width="1720px"
+      width="1200px"
       :visible="addDialog"
+      v-if="addDialog"
       :append-to-body="true"
       :close-on-click-modal="false"
       @update:visible="closeAdd"
       :maxable="true"
     >
-      <Production :tableData="tableData" ref="ProductionCom" />
+      <Production
+        :tableData="tableData"
+        :taskInfo="taskInfo"
+        ref="ProductionCom"
+      />
       <template v-slot:footer>
         <el-button @click="closeAdd">取消</el-button>
         <el-button type="primary" :loading="loading" @click="addParamrter">
@@ -143,6 +148,14 @@
             minWidth: 110
           },
 
+          {
+            prop: 'factoriesName',
+            label: '所属工厂',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+
           {
             columnKey: 'action',
             label: '操作',
@@ -176,7 +189,6 @@
         let len = this.$refs.table.getData().length + 1;
         let arrM = arr.map((item, index) => {
           return { ...item.detail, orderNum: len + index };
-
         });
         arrM.forEach((element) => {
           if (element.id) {
@@ -257,11 +269,14 @@
             size: -1
           });
 
+          console.log(res, '_________res');
           let arr = res.list.map((it) => {
             it.detail.orderNum = it.orderNum;
 
             return it.detail;
           });
+
+          console.log(arr, '_____arr');
           this.$refs.table.setData([...arr]);
         }
       },

+ 1 - 0
src/views/technology/route/index.vue

@@ -141,6 +141,7 @@
       :visible.sync="showEdit"
       :data="current"
       @done="reload"
+      :isUpdate="isUpdate"
       ref="userEdit"
     />