瀏覽代碼

修改曹总说的问题

pm 10 月之前
父節點
當前提交
da0230fae3

+ 7 - 0
src/api/mes/job/job.js

@@ -17,6 +17,13 @@ export function getJobTicketInfo(repairId) {
     method: 'get'
   })
 }
+// /iscs/sop/selectSopTypeByMachineryId  查询对应设备工艺下的 sop类型
+export function selectSopTypeByMachineryId(repairId) {
+  return request({
+    url: '/iscs/sop/selectSopTypeByMachineryId?machineryId=' + repairId,
+    method: 'get'
+  })
+}
 // 获取八大步骤详细信息
 export function getStepInfo(repairId) {
   return request({

+ 8 - 0
src/api/system/marsdept.js

@@ -43,6 +43,14 @@ export function updateMarsDept(data) {
     data: data
   })
 }
+// 修改玛氏岗位 状态
+export function updateMarsDeptStatus(data) {
+  return request({
+    url: '/iscs/workstation/updateIsWorkstationStatus',
+    method: 'post',
+    data: data
+  })
+}
 
 // 删除玛氏岗位
 export function delMarsDept(deptId) {

+ 100 - 63
src/views/mes/hw/lotoStation/index.vue

@@ -9,24 +9,30 @@
       label-width="100px"
     >
       <el-row>
-        <el-form-item label="电柜编码" prop="lotoCode">
-          <el-input
-            v-model="queryParams.lotoCode"
-            placeholder="请输入电柜编码"
-            clearable
-            @lotoup.enter.native="handleQuery"
-          />
-        </el-form-item>
+<!--        <el-form-item label="锁定站编码" prop="lotoCode">-->
+<!--          <el-input-->
+<!--            v-model="queryParams.lotoCode"-->
+<!--            placeholder="请输入锁定站编码"-->
+<!--            clearable-->
+<!--            @lotoup.enter.native="handleQuery"-->
+<!--          />-->
+<!--        </el-form-item>-->
 
-        <el-form-item label="电柜名称" prop="lotoName">
+        <el-form-item label="锁定站名称" prop="lotoName">
           <el-input
             v-model="queryParams.lotoName"
-            placeholder="请输入电柜名称"
+            placeholder="请输入锁定站名称"
             clearable
             @lotoup.enter.native="handleQuery"
           />
         </el-form-item>
 
+        <el-form-item label="岗位" prop="workstationId" >
+          <treeselect style="width: 200px" v-model="queryParams.workstationId" :options="marsOptions" :normalizer="Marsnormalizer" placeholder="请选择岗位"/>
+        </el-form-item>
+<!--        <el-form-item label="设备/工艺" prop="lotoId" >-->
+<!--          <treeselect style="width: 200px" v-model="queryParams.lotoId" :options="machineryOptions" :normalizer="machinerynormalizer" placeholder="请选择设备/工艺"/>-->
+<!--        </el-form-item>-->
         <el-form-item style="margin-left: 20px">
           <el-button v-no-more-click
                      type="primary"
@@ -79,22 +85,28 @@
       @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" width="55" align="center" />
+<!--      <el-table-column-->
+<!--        label="锁定站编码"-->
+<!--        width="150px"-->
+<!--        align="center"-->
+<!--        prop="lotoCode"-->
+<!--      />-->
       <el-table-column
-        label="电柜编码"
-        width="150px"
+        label="锁定站名称"
+        width="180px"
         align="center"
-        prop="lotoCode"
+        prop="lotoName"
       />
       <el-table-column
-        label="电柜名称"
+        label="排序"
         width="180px"
         align="center"
-        prop="lotoName"
+        prop="orderNum"
       />
-      <el-table-column label="所属岗位" align="center" prop="workstationName" />
+      <el-table-column label="岗位" align="center" prop="workstationName" />
 
       <el-table-column
-        label="点位信息"
+        label="锁定站详情"
         align="center"
         prop="create"
         width="200"
@@ -105,20 +117,20 @@
             size="mini"
             type="text"
             @click="look(scope.row)"
-          >预览
+          >查看
           </el-button>
         </template>
       </el-table-column>
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="180"
-      >
-        <template slot-scope="scope">
-          <span>{{ scope.row.createTime }}</span>
-        </template>
-      </el-table-column>
+<!--      <el-table-column-->
+<!--        label="创建时间"-->
+<!--        align="center"-->
+<!--        prop="createTime"-->
+<!--        width="180"-->
+<!--      >-->
+<!--        <template slot-scope="scope">-->
+<!--          <span>{{ scope.row.createTime }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
 
       <el-table-column
         label="操作"
@@ -151,7 +163,7 @@
     <pagination
       v-show="total > 0"
       :total="total"
-      :page.sync="queryParams.current"
+      :page.sync="queryParams.pages"
       :limit.sync="queryParams.size"
       @pagination="getList"
     />
@@ -159,42 +171,46 @@
     <!-- 添加或修改设备维修单对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="450px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item label="电柜名称" prop="lotoName">
-          <el-input v-model="form.lotoName" placeholder="请输入电柜名称" />
+        <el-form-item label="锁定站名称" prop="lotoName">
+          <el-input v-model="form.lotoName" placeholder="请输入锁定站名称" />
         </el-form-item>
-        <el-row>
-          <el-col :span="15">
-            <el-form-item label="电柜编码" prop="lotoCode">
-              <el-input
-                v-model="form.lotoCode"
-                placeholder="请输入电柜编码"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label-width="80">
-              <el-switch
-                v-model="autoGenFlag"
-                active-color="#13ce66"
-                active-text="自动生成"
-                @change="handleAutoGenChange(autoGenFlag)"
-              >
-              </el-switch>
-            </el-form-item>
-          </el-col>
-        </el-row>
+<!--        <el-row>-->
+<!--          <el-col :span="15">-->
+<!--            <el-form-item label="锁定站编码" prop="lotoCode">-->
+<!--              <el-input-->
+<!--                v-model="form.lotoCode"-->
+<!--                placeholder="请输入锁定站编码"-->
+<!--                style="width: 100%"-->
+<!--              />-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--          <el-col :span="8">-->
+<!--            <el-form-item label-width="80">-->
+<!--              <el-switch-->
+<!--                v-model="autoGenFlag"-->
+<!--                active-color="#13ce66"-->
+<!--                active-text="自动生成"-->
+<!--                @change="handleAutoGenChange(autoGenFlag)"-->
+<!--              >-->
+<!--              </el-switch>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
 
-        <el-form-item label="所属mars岗位" prop="workstationId" >
-          <treeselect v-model="form.workstationId" :options="marsOptions" :normalizer="Marsnormalizer" placeholder="选择mars岗位"/>
+        <el-form-item label="岗位" prop="workstationId" >
+          <treeselect v-model="form.workstationId" :options="marsOptions" :normalizer="Marsnormalizer" placeholder="选择岗位"/>
         </el-form-item>
-        <el-form-item label="点位信息" prop="map">
+        <el-form-item label="排序" prop="orderNum">
+          <el-input-number type="number" v-model="form.orderNum" />
+        </el-form-item>
+        <el-form-item label="锁定站信息" prop="map">
           <el-input
             v-model="form.map"
-            placeholder="请输入点位信息"
+            placeholder="请输入锁定站信息"
 
           />
         </el-form-item>
+
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button v-no-more-click type="primary" @click="submitForm">确 定</el-button>
@@ -216,6 +232,7 @@ import { genCode } from "@/api/system/autocode/rule";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { listMarsDept } from '@/api/system/marsdept'
+import { listTechnology } from '@/api/system/machinery'
 export default {
   name: "lock",
   dicts: ["hardware_status"],
@@ -260,10 +277,10 @@ export default {
       // 表单校验
       rules: {
         lotoCode: [
-          { required: true, message: "电柜编码不能为空", trigger: "blur" },
+          { required: true, message: "锁定站编码不能为空", trigger: "blur" },
         ],
         lotoName: [
-          { required: true, message: "电柜名称不能为空", trigger: "blur" },
+          { required: true, message: "锁定站名称不能为空", trigger: "blur" },
         ],
       },
       // 日期选择
@@ -300,6 +317,7 @@ export default {
       },
       EditId: 0, //修改判断
       machinerytypeOptions: [], //锁具机构类型
+      machineryOptions:[],//查询 设备工艺数据
     };
   },
   created() {
@@ -323,9 +341,9 @@ export default {
     getList() {
       this.loading = true;
 
-      // 电柜数据
+      // 锁定站数据
       listLoto(this.queryParams).then((response) => {
-        console.log(response,'电柜')
+        console.log(response,'锁定站')
         this.repairList = response.data.records;
         this.total = response.data.total;
         this.loading = false;
@@ -337,6 +355,15 @@ export default {
       listMarsDept(data).then(response => {
         this.marsOptions = this.handleTree(response.data.records,"workstationId","parentId")
       })
+      // 设备工艺
+      listTechnology(data).then(response => {
+        this.machineryOptions = this.handleTree(
+          response.data.records,
+          'machineryId',
+          'parentId'
+        )
+      })
+
     },
     /** 转换部门数据结构 */
     Marsnormalizer(node) {
@@ -349,6 +376,16 @@ export default {
         children: node.children
       }
     },
+    machinerynormalizer(node) {
+      if (node.children && !node.children.length) {
+        delete node.children
+      }
+      return {
+        id: node.lotoId,
+        label: node.machineryName,
+        children: node.children
+      }
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -390,7 +427,7 @@ export default {
       this.reset();
       this.open = true;
       this.EditId = null;
-      this.title = "新增电柜信息";
+      this.title = "新增锁定站信息";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -399,7 +436,7 @@ export default {
       getLotoInfo(this.EditId).then((response) => {
         this.form = response.data;
         this.open = true;
-        this.title = "编辑电柜信息";
+        this.title = "编辑锁定站信息";
       });
     },
     /** 提交按钮 */

+ 116 - 66
src/views/mes/job/jobm/NewMarsJob.vue

@@ -77,43 +77,46 @@
     >
       <h3 style="margin-left: 20px">{{ this.marsSopTitle }} SOP</h3>
       <span style="margin-left: 20px">选择 工艺/设备</span>
+<!--      :data="marsSopPage"-->
       <el-table
         style="width: 50%; margin: 20px"
         :header-cell-style="{ background: '#004d8c', color: '#FFFFFF' }"
-        :data="marsSopPage"
+        :data="technologyList"
         @selection-change="handleSelectionChange"
       >
         <el-table-column type="selection" width="55" align="center"/>
-        <el-table-column
-          label="sop名称"
-          align="center"
-          prop="sopName"
-        ></el-table-column>
+<!--        <el-table-column-->
+<!--          label="sop名称"-->
+<!--          align="center"-->
+<!--          prop="sopName"-->
+<!--        ></el-table-column>-->
         <el-table-column
           label="设备/工艺名称"
           align="center"
           prop="machineryName"
         ></el-table-column>
-        <el-table-column
-          label="所属岗位"
-          align="center"
-          prop="workstationName"
-        ></el-table-column>
+<!--        <el-table-column-->
+<!--          label="所属岗位"-->
+<!--          align="center"-->
+<!--          prop="workstationName"-->
+<!--        ></el-table-column>-->
       </el-table>
       <h2 style="margin-left: 20px">sop类型</h2>
       <el-radio-group
         v-model="selectedOption"
         size="small"
         style="display: flex; flex-direction: column; align-items: flex-start"
+        @change="handleSopchange"
       >
+<!-- v-for="(option, index) in filteredSopTypes"-->
         <el-radio
-          v-for="(option, index) in filteredSopTypes"
-          :key="index"
-          :label="option"
+          v-for="item in sopTypeOption"
+          :key="item.value"
+          :label="item.label"
           border
           style="margin: 10px"
         >
-          {{ option.label }}
+          {{ item.label }}
         </el-radio>
       </el-radio-group>
       <el-button
@@ -147,14 +150,14 @@
             </div>
             <el-row>
               <el-col :span="9">
-                <el-table :data="selectPointList">
+                <el-table :data="selectPointList" :show-header="false">
                   <el-table-column
                     prop="pointName"
-                    label="隔离点"
+                    label=""
                   ></el-table-column>
                   <el-table-column
-                    prop="powerTypeName"
-                    label="危险能量类型"
+                    prop="remark"
+                    label=""
                   ></el-table-column>
                 </el-table>
               </el-col>
@@ -666,7 +669,7 @@ import {
   getStepEight,
   getStepInfo,
   getWorkstationTicketList,
-  listJobTicket,
+  listJobTicket, selectSopTypeByMachineryId,
   updateJobStep,
   updateJobToCancel,
   updateJobToFinish
@@ -684,7 +687,8 @@ export default {
     return {
       tabPosition: 'first',
       selectedOption: '',
-      marsSopPage: [], //岗位对应sop列表
+      marsSopPage: [], //岗位对应sop列表--现在准备存放设备工艺 而不是选设备工艺的sop
+      technologyList:[],//设备工艺表格数据
       marsSopTitle: '', //岗位后 对应展示sop
       marsDeptList: [],
       listLockerOption: [], //上锁人下拉数据
@@ -723,6 +727,8 @@ export default {
       scaleFactor: 1, // 缩放比例,初始值为1
       EightDetailvisible: false,//第八步受影响作业票
       AffectedTickets:[],//第八步查看详情信息表格
+      sopTypeOption: [],
+      sopId:null,
       rules: {
         locker: [
           { required: true, message: '上锁人不能为空', trigger: 'change' }
@@ -732,14 +738,15 @@ export default {
 
   },
   computed: {
-    filteredSopTypes() {
-      const sopTypesInMarsSopPage = this.marsSopPage.map(
-        (item) => item.sopType
-      )
-      return this.dict.type.sop_type.filter((option) =>
-        sopTypesInMarsSopPage.includes(option.value)
-      )
-    },
+
+    // filteredSopTypes() {
+    //   const sopTypesInMarsSopPage = this.marsSopPage.map(
+    //     (item) => item.sopType
+    //   )
+    //   return this.dict.type.sop_type.filter((option) =>
+    //     sopTypesInMarsSopPage.includes(option.value)
+    //   )
+    // },
     isStepFourExecuted() {
       const stepFour = this.EightStepForm.find((step) => step.stepIndex == "4");
       return stepFour && stepFour.stepStatus === '1';
@@ -750,6 +757,12 @@ export default {
       if (val =='first') {
         this.getList()
       }
+    },
+    'dialogForm.locker': function (val) {
+      if (val) {
+        this.handlelockerChage(val)
+        console.log('我制定了')
+      }
     }
   },
 
@@ -848,6 +861,7 @@ export default {
       })
     },
     getList() {
+
       const data = {
         pages: 1,
         size: -1
@@ -883,6 +897,21 @@ export default {
           }))
       })
     },
+    // sop类型 el-radio
+    handleSopchange(data) {
+      const sopType=this.sopTypeOption.find((item)=>item.label==data)
+      const data1={
+        pages: 1,
+        size: -1,
+        machineryId:this.machineryId,
+        sopType:sopType.value
+      }
+      getIsMarsSopPage(data1).then((res) => {
+        console.log(res, 'SopPage')
+        this.sopId = res.data.records[0].sopId
+      })
+    },
+
     // 作业票切换
     handelChange(val, workstationId, workstationName) {
       console.log(val)
@@ -894,50 +923,70 @@ export default {
           size: -1,
           workstationId: workstationId
         }
-        getIsMarsSopPage(data).then((res) => {
-          console.log(res, 'SopPage')
-          this.marsSopPage = res.data.records
+        listTechnology(data).then((res) => {
+          console.log(res,'设备工艺---列表')
+          this.technologyList = res.data.records.filter((item) =>item.machineryType=='工艺')
         })
+        // getIsMarsSopPage(data).then((res) => {
+        //   console.log(res, 'SopPage')
+        //   this.marsSopPage = res.data.records
+        // })
       }
       if (val == 'third') {
         this.selectedOption=''
-        const data = {
-          sopId: this.form[0].sopId
-        }
-        addJobTicket(data).then((res) => {
-          console.log(res, '作业票新增')
-          this.$message.success('作业开始执行')
-          this.ticketId = res.data
-          getStepInfo(this.ticketId).then((res) => {
-            this.EightStepForm = res.data
-            console.log(res, '作业票-详细信息')
-          })
-          // 获取设备工艺图
-          getTechnologyInfo(this.machineryId).then((res) => {
-            this.machineryImg = res.data.machineryImg
-            // 获取电柜选中隔离点
-            const lotoId = res.data.lotoId
-            const selectPointsIds = res.data.pointIdList
-
-            getLotoMapInfo(lotoId).then((response) => {
-              console.log(response, '电柜信息--NewMarsJob')
-              this.selectPointList = response.data.filter((item) =>
-                selectPointsIds.includes(item.pointId)
-              )
-              console.log(this.selectPointList, '拿到的选中隔离点数据')
+        this.sopTypeOption=[]
+        console.log(this.sopId,'this.sopId')
+        if(this.sopId){
+
+          const data = {
+            sopId: this.sopId
+          }
+          addJobTicket(data).then((res) => {
+            console.log(res, '作业票新增')
+            this.$message.success('作业开始执行')
+            this.ticketId = res.data
+            getStepInfo(this.ticketId).then((res) => {
+              this.EightStepForm = res.data
+              console.log(res, '作业票-详细信息')
+            })
+            // 获取设备工艺图
+            getTechnologyInfo(this.machineryId).then((res) => {
+              this.machineryImg = res.data.machineryImg
+              // 获取电柜选中隔离点
+              const lotoId = res.data.lotoId
+              const selectPointsIds = res.data.pointIdList
+
+              getLotoMapInfo(lotoId).then((response) => {
+                console.log(response, '电柜信息--NewMarsJob')
+                this.selectPointList = response.data.filter((item) =>
+                  selectPointsIds.includes(item.pointId)
+                )
+                console.log(this.selectPointList, '拿到的选中隔离点数据')
+              })
             })
           })
-        })
+        }
+
       }
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
       console.log(selection, 'mars设备工艺表格多选拿到的数据')
+
       this.form = selection
       this.machineryId = selection[0].machineryId
       getTechnologyInfo(selection[0].machineryId).then((res) => {
         this.machineryImg = res.data.machineryImg
       })
+      selectSopTypeByMachineryId(selection[0].machineryId).then((res) => {
+        console.log(res, 'SopTypeByMachineryId')
+        this.sopTypeOption=res.data.map((item) =>{
+          return{
+            label: item.dictLabel,
+            value: item.dictValue
+          }
+        })
+      })
     },
     // 添加内部人员
     addInside(row) {
@@ -964,8 +1013,8 @@ export default {
               this.dialogForm.locker = assignedUsers
                 .filter(item => item.userRole == 'jtlocker')
                 .map(item => item.userName);
-              console.log(this.dialogForm.locker,'上锁人回显数据')
-
+              const newUser=res.data.jobTicketUserList.filter((item) =>item.userRole == 'jtlocker')
+              this.newticketUserDTOList=[...this.newticketUserDTOList,...newUser];
               // 更新内部和外部用户的选中状态
               this.$nextTick(() => {
                 // 手动选中内部人员
@@ -1024,7 +1073,7 @@ export default {
         this.newticketUserDTOList=[]
         this.$set(this.dialogForm, this.dialogForm.locker, val)
       } else {
-        this.$set(this.dialogForm, this.dialogForm.locker, '')
+        this.$set(this.dialogForm, this.dialogForm.locker, val)
       }
       this.$forceUpdate();
       const user = this.listLockerOption.find((item) => item.value == val)
@@ -1052,14 +1101,14 @@ export default {
       console.log(this.newticketUserDTOList, '清除后的用户');
     },
     InSelectionChange(selection) {
-      // 移除未选中的用户
+      // 移除未选中的内部用户
       this.AllUserTable = this.AllUserTable.filter((user) =>
-        selection.some((item) => item.userId === user.userId)
+        user.userType !== 0 || selection.some((item) => item.userId === user.userId)
       );
 
       // 添加新的内部用户
       selection.forEach((item) => {
-        if (!this.AllUserTable.some((user) => user.userId === item.userId)) {
+        if (!this.AllUserTable.some((user) => user.userId === item.userId && user.userType === 0)) {
           this.AllUserTable.push({
             userName: item.nickName,
             userId: item.userId,
@@ -1073,14 +1122,14 @@ export default {
     },
 
     OutSelectionChange(selection) {
-      // 移除未选中的用户
+      // 移除未选中的外部用户
       this.AllUserTable = this.AllUserTable.filter((user) =>
-        selection.some((item) => item.userId === user.userId)
+        user.userType !== 1 || selection.some((item) => item.userId === user.userId)
       );
 
       // 添加新的外部用户
       selection.forEach((item) => {
-        if (!this.AllUserTable.some((user) => user.userId === item.userId)) {
+        if (!this.AllUserTable.some((user) => user.userId === item.userId && user.userType === 1)) {
           this.AllUserTable.push({
             userName: item.nickName,
             userId: item.userId,
@@ -1093,6 +1142,7 @@ export default {
       console.log(this.AllUserTable, '外部人员');
     },
     confirmAddUser() {
+
       const data = {
         ticketId: this.ticketId,
         ticketUserDTOList: [...this.AllUserTable, ...this.newticketUserDTOList]

+ 130 - 95
src/views/mes/md/segregationpoint/index.vue

@@ -8,14 +8,14 @@
       v-show="showSearch"
       label-width="100px"
     >
-      <el-form-item label="隔离点编号" prop="pointCode">
-        <el-input
-          v-model="queryParams.pointCode"
-          placeholder="请输入隔离点编号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
+<!--      <el-form-item label="隔离点编号" prop="pointCode">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.pointCode"-->
+<!--          placeholder="请输入隔离点编号"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
       <el-form-item label="隔离点名称" prop="pointName">
         <el-input
           v-model="queryParams.pointName"
@@ -24,30 +24,36 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="岗位" prop="workstationId" >
+      <treeselect style="width: 200px" v-model="queryParams.workstationId" :options="deptOptions" :normalizer="normalizer" placeholder="选择岗位"/>
+      </el-form-item>
+<!--      <el-form-item label="设备/工艺" prop="machineryId" >-->
+<!--        <treeselect style="width: 200px" v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择岗位"/>-->
+<!--      </el-form-item>-->
       <!-- <el-form-item label="状态" prop="calendarType">
         <el-select v-model="queryParams.calendarType" placeholder="状态">
           <el-option>正常</el-option>
           <el-option>异常</el-option>
         </el-select>
       </el-form-item> -->
-      <el-form-item label="隔离点类型" prop="pointType">
-        <el-select
-          v-model="queryParams.pointType"
-          placeholder="请选择隔离点类型"
-        >
-          <el-option
-            v-for="dict in dict.type.point_type"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="危险能量类型" prop="powerType">
+<!--      <el-form-item label="隔离点类型" prop="pointType">-->
+<!--        <el-select-->
+<!--          v-model="queryParams.pointType"-->
+<!--          placeholder="请选择隔离点类型"-->
+<!--        >-->
+<!--          <el-option-->
+<!--            v-for="dict in dict.type.point_type"-->
+<!--            :key="dict.value"-->
+<!--            :label="dict.label"-->
+<!--            :value="dict.value"-->
+<!--          />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
+      <el-form-item label="能量源" prop="powerType">
         <el-select
           style="width: 300px"
           v-model="queryParams.powerType"
-          placeholder="请选择危险能量类型"
+          placeholder="请选择能量源"
         >
           <el-option
             v-for="dict in dict.type.power_type"
@@ -57,19 +63,19 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="createTime"
-          type="daterange"
-          align="right"
-          unlink-panels
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          :picker-options="pickerOptions"
-        >
-        </el-date-picker>
-      </el-form-item>
+<!--      <el-form-item label="创建时间">-->
+<!--        <el-date-picker-->
+<!--          v-model="createTime"-->
+<!--          type="daterange"-->
+<!--          align="right"-->
+<!--          unlink-panels-->
+<!--          range-separator="至"-->
+<!--          start-placeholder="开始日期"-->
+<!--          end-placeholder="结束日期"-->
+<!--          :picker-options="pickerOptions"-->
+<!--        >-->
+<!--        </el-date-picker>-->
+<!--      </el-form-item>-->
 
       <el-form-item>
         <el-button
@@ -162,18 +168,6 @@
         </template>
       </el-table-column>
       <el-table-column label="隔离点名称" align="center" prop="pointName" />
-      <el-table-column label="隔离点NFC" align="center" prop="pointNfc" >
-      </el-table-column>
-      <el-table-column label="所属电柜" align="center" prop="lotoName" >
-      </el-table-column>
-      <!-- <el-table-column label="状态" align="center" prop="calendarType">
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.mes_calendar_type"
-            :value="scope.row.calendarType"
-          />
-        </template>
-      </el-table-column> -->
       <el-table-column
         label="隔离点图标"
         align="center"
@@ -190,6 +184,26 @@
           <span v-else>-</span>
         </template>
       </el-table-column>
+<!--      <el-table-column label="隔离点NFC" align="center" prop="pointNfc" >-->
+<!--      </el-table-column>-->
+      <el-table-column label="岗位" align="center" prop="workstationName" >
+      </el-table-column>
+<!--      <el-table-column label="设备/工艺" align="center" prop="machineryName" >-->
+<!--      </el-table-column>-->
+      <el-table-column label="LOTO站" align="center" prop="lotoName" >
+      </el-table-column>
+      <el-table-column label="作用" align="center" prop="remark">
+      </el-table-column>
+      <!-- <el-table-column label="状态" align="center" prop="calendarType">
+        <template slot-scope="scope">
+          <dict-tag
+            :options="dict.type.mes_calendar_type"
+            :value="scope.row.calendarType"
+          />
+        </template>
+      </el-table-column> -->
+
+
       <el-table-column
         label="隔离点图片"
         align="center"
@@ -206,17 +220,17 @@
           <span v-else>-</span>
         </template>
       </el-table-column>
-      <el-table-column label="隔离点类型" align="center" prop="pointType">
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.point_type"
-            :value="scope.row.pointType"
-          />
-        </template>
-      </el-table-column>
-
+<!--      <el-table-column label="隔离点类型" align="center" prop="pointType">-->
+<!--        <template slot-scope="scope">-->
+<!--          <dict-tag-->
+<!--            :options="dict.type.point_type"-->
+<!--            :value="scope.row.pointType"-->
+<!--          />-->
+<!--        </template>-->
+<!--      </el-table-column>-->
 
-      <el-table-column label="危险能量类型" align="center" prop="powerType">
+<!--危险能量类型-->
+      <el-table-column label="能量源" align="center" prop="powerType">
         <template slot-scope="scope">
           <dict-tag
             :options="dict.type.power_type"
@@ -224,41 +238,42 @@
           />
         </template>
       </el-table-column>
-      <el-table-column
-        label="挂锁类型图"
-        align="center"
-        prop="lockTypeImg"
-        width="90"
-      >
-        <template slot-scope="scope">
-          <img
-            v-if="scope.row.lockTypeImg"
-            :src="scope.row.lockTypeImg"
-            alt=""
-            style="width: 50px; height: 50px"
-          />
-          <span v-else>-</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        label="锁具机构类型图"
-        align="center"
-        prop="locksetTypeImg"
-        width="90"
-      >
-        <template slot-scope="scope">
-          <img
-            v-if="scope.row.locksetTypeImg"
-            :src="scope.row.locksetTypeImg"
-            alt=""
-            style="width: 50px; height: 50px"
-          />
-          <span v-else>-</span>
-        </template>
-      </el-table-column>
+<!--      <el-table-column-->
+<!--        label="挂锁类型图"-->
+<!--        align="center"-->
+<!--        prop="lockTypeImg"-->
+<!--        width="90"-->
+<!--      >-->
+<!--        <template slot-scope="scope">-->
+<!--          <img-->
+<!--            v-if="scope.row.lockTypeImg"-->
+<!--            :src="scope.row.lockTypeImg"-->
+<!--            alt=""-->
+<!--            style="width: 50px; height: 50px"-->
+<!--          />-->
+<!--          <span v-else>-</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column-->
+<!--        label="锁具机构类型图"-->
+<!--        align="center"-->
+<!--        prop="locksetTypeImg"-->
+<!--        width="90"-->
+<!--      >-->
+<!--        <template slot-scope="scope">-->
+<!--          <img-->
+<!--            v-if="scope.row.locksetTypeImg"-->
+<!--            :src="scope.row.locksetTypeImg"-->
+<!--            alt=""-->
+<!--            style="width: 50px; height: 50px"-->
+<!--          />-->
+<!--          <span v-else>-</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+
+<!--      <el-table-column label="创建时间" align="center" prop="createTime">-->
+<!--      </el-table-column>-->
 
-      <el-table-column label="创建时间" align="center" prop="createTime">
-      </el-table-column>
       <el-table-column
         label="操作"
         align="center"
@@ -443,6 +458,15 @@
               />
             </el-form-item>
           </el-col>
+          <el-col :span="11">
+            <el-form-item label="作用" prop="remark">
+              <el-input
+                style="width: 300px"
+                v-model="form.remark"
+                placeholder="请输入作用"
+              />
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row>
           <el-col :span="8">
@@ -492,6 +516,7 @@
             </el-form-item>
           </el-col>
         </el-row>
+
       </el-form>
 
       <div slot="footer" class="dialog-footer">
@@ -522,6 +547,8 @@ import { listWorkarea } from '@/api/mes/wa/workarea'
 import { listLockType } from '@/api/mes/locktype/locktype'
 import { listPadLockTypeAPI } from '@/api/mes/padLockType/padLockType'
 import { listLoto} from "@/api/mes/lotoStation/lotoStation";
+import { listMarsDept } from '@/api/system/marsdept'
+import { listTechnology } from '@/api/system/machinery'
 export default {
   name: 'Team',
   components: { Treeselect },
@@ -606,6 +633,7 @@ export default {
       form: {},
       LockTypeOptions: [],//锁具机构类型下拉
       padLockTypeOptions: [],//挂锁类型下拉
+
       lotoOptions:[],//电柜下拉
       // 表单校验
       rules: {
@@ -630,7 +658,8 @@ export default {
          pointNfc:[
           { required: true, message: '隔离点NFC不能为空', trigger: 'blur' }
         ]
-      }
+      },
+
     }
   },
   created() {
@@ -639,6 +668,7 @@ export default {
     this.getworkArea()
   },
   methods: {
+
     // 格式化日期查询数据
     formatDate(date) {
       if (date && date instanceof Date && !isNaN(date)) {
@@ -677,6 +707,9 @@ export default {
       //     'children'
       //   )
       // })
+      listMarsDept(data).then(response => {
+        this.deptOptions = this.handleTree(response.data.records,"workstationId","parentId")
+      })
       // 锁具机构类型
       listLockType(data).then((response) => {
         this.LockTypeOptions = this.handleTree(response.data.records, 'locksetTypeId')
@@ -685,6 +718,7 @@ export default {
       listPadLockTypeAPI(data).then((response) => {
         this.padLockTypeOptions = this.handleTree(response.data.records, 'lockTypeId')
       })
+
     //   所属电柜
       listLoto(data).then((response) => {
         console.log(response,'电柜数据')
@@ -702,11 +736,12 @@ export default {
         delete node.children
       }
       return {
-        id: node.workareaId,
-        label: node.workareaName,
+        id: node.workstationId,
+        label: node.workstationName,
         children: node.children
       }
     },
+
     normalizerLockset(node) {
       if (node.children && !node.children.length) {
         delete node.children

+ 7 - 2
src/views/mes/sop/sopm/index.vue

@@ -266,7 +266,9 @@ export default {
           workstationId:this.form.workstationId
         }
         listTechnology(data).then(response => {
-          this.machineryOptions = this.handleTree(response.data.records,"machineryId","parentId")
+
+          const data=response.data.records.filter((item) =>item.machineryType=='工艺')
+          this.machineryOptions = this.handleTree(data,"machineryId","parentId")
         })
       }
     }
@@ -297,7 +299,10 @@ export default {
         })
       })
       listTechnology(data).then(response => {
-        this.machineryOptions = this.handleTree(response.data.records,"machineryId","parentId")
+        console.log(response,'涉笔啊哈就开始卡机')
+        const data=response.data.records.filter((item) =>item.machineryType=='工艺')
+        console.log(data,'过滤之后')
+        this.machineryOptions = this.handleTree(data,"machineryId","parentId")
       })
     },
     /** 转换mars岗位数据结构 */

+ 100 - 48
src/views/system/mars/index.vue

@@ -1,15 +1,15 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="岗位编码" prop="workstationCode">
-        <el-input
-          v-model="queryParams.workstationCode"
-          placeholder="请输入部门编码"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+<!--      <el-form-item label="岗位编码" prop="workstationCode">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.workstationCode"-->
+<!--          placeholder="请输入部门编码"-->
+<!--          clearable-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
 
-      </el-form-item>
+<!--      </el-form-item>-->
       <el-form-item label="岗位名称" prop="workstationName">
         <el-input
           v-model="queryParams.workstationName"
@@ -18,7 +18,21 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-
+      <el-form-item label="状态" prop="status">
+        <el-select
+          v-model="queryParams.status"
+          placeholder="用户状态"
+          clearable
+          style="width: 240px"
+        >
+          <el-option
+            v-for="dict in dict.type.sys_normal_disable"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button v-no-more-click type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索
         </el-button>
@@ -60,17 +74,27 @@
     >
 <!--      <el-table-column prop="workstationCode" label="岗位编码" width="260"></el-table-column>-->
       <el-table-column prop="workstationName" label="岗位名称" width="260"></el-table-column>
-      <el-table-column prop="workstationType" label="岗位类型" width="260"></el-table-column>
-      <el-table-column prop="workstationType" label="岗位人员" width="260">
+      <el-table-column prop="orderNum" label="排序" width="260"></el-table-column>
+      <el-table-column prop="status" label="状态" width="260">
         <template slot-scope="scope">
-          <el-button type="text" @click="HandleLookWorkStation(scope.row)">查看</el-button>
+          <el-switch
+            v-model="scope.row.status"
+            active-value="0"
+            inactive-value="1"
+            @change="handleStatusChange(scope.row)"
+          ></el-switch>
         </template>
       </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="200">
+      <el-table-column prop="workstationType" label="岗位人员" width="260">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
+          <el-button type="text" @click="HandleLookWorkStation(scope.row)">查看</el-button>
         </template>
       </el-table-column>
+<!--      <el-table-column label="创建时间" align="center" prop="createTime" width="200">-->
+<!--        <template slot-scope="scope">-->
+<!--          <span>{{ parseTime(scope.row.createTime) }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button v-no-more-click
@@ -102,15 +126,15 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      :page.sync="queryParams.pages"
-      :limit.sync="queryParams.size"
-      @pagination="getList"
-    />
+<!--    <pagination-->
+<!--      v-show="total > 0"-->
+<!--      :total="total"-->
+<!--      :page.sync="queryParams.pages"-->
+<!--      :limit.sync="queryParams.size"-->
+<!--      @pagination="getList"-->
+<!--    />-->
     <!-- 添加或修改部门对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="480px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
 
         <el-form-item label="上级" prop="parentId" v-if="form.parentId !== 0">
@@ -120,30 +144,43 @@
         <el-form-item label="岗位名称" prop="workstationName">
           <el-input v-model="form.workstationName" placeholder="请输入岗位名称"/>
         </el-form-item>
-        <el-row>
-          <el-col :span="18">
-            <el-form-item label="岗位编号" prop="workstationCode">
-              <el-input
-                v-model="form.workstationCode"
-                placeholder="请输入岗位编号"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label-width="30">
-              <el-switch
-                v-model="autoGenFlag"
-                active-color="#13ce66"
-                active-text="自动生成"
-                @change="handleAutoGenChange(autoGenFlag)"
-              >
-              </el-switch>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="岗位类型" prop="workstationType">
-          <el-input v-model="form.workstationType" placeholder="请输入岗位类型" maxlength="20"/>
-        </el-form-item>
+<!--        <el-row>-->
+<!--          <el-col :span="18">-->
+<!--            <el-form-item label="岗位编号" prop="workstationCode">-->
+<!--              <el-input-->
+<!--                v-model="form.workstationCode"-->
+<!--                placeholder="请输入岗位编号"-->
+<!--              />-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--          <el-col :span="6">-->
+<!--            <el-form-item label-width="30">-->
+<!--              <el-switch-->
+<!--                v-model="autoGenFlag"-->
+<!--                active-color="#13ce66"-->
+<!--                active-text="自动生成"-->
+<!--                @change="handleAutoGenChange(autoGenFlag)"-->
+<!--              >-->
+<!--              </el-switch>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
+                <el-form-item label="排序" prop="orderNum">
+                  <el-input-number type="number" v-model="form.orderNum" />
+                </el-form-item>
+
+          <el-form-item label="状态" prop="status">
+            <el-radio-group v-model="form.status">
+              <el-radio
+                v-for="dict in dict.type.sys_normal_disable"
+                :key="dict.value"
+                :label="dict.value"
+              >{{dict.label}}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+<!--        <el-form-item label="岗位类型" prop="workstationType">-->
+<!--          <el-input v-model="form.workstationType" placeholder="请输入岗位类型" maxlength="20"/>-->
+<!--        </el-form-item>-->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button v-no-more-click type="primary" @click="submitForm">确 定</el-button>
@@ -160,7 +197,7 @@ import {
   getMarsDept,
   addMarsDept,
   updateMarsDept,
-  delMarsDept
+  delMarsDept, updateMarsDeptStatus
 } from '@/api/system/marsdept'
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
@@ -195,7 +232,7 @@ export default {
       // 查询参数
       queryParams: {
         pages:1,
-        size:10,
+        size:-1,
         workstationName: undefined,
         workstationCode: undefined,
         userId:undefined
@@ -230,6 +267,21 @@ watch: {
     this.getList()
   },
   methods: {
+    // 用户状态修改
+    handleStatusChange(row) {
+      let text = row.status === "0" ? "启用" : "停用";
+      this.$modal.confirm('确认要"' + text + '""' + row.workstationName + '"岗位吗?').then(function() {
+        const data={
+          workstationId:row.workstationId,
+          status:row.status,
+        }
+        return updateMarsDeptStatus(data);
+      }).then(() => {
+        this.$modal.msgSuccess(text + "成功");
+      }).catch(function() {
+        row.status = row.status === "0" ? "1" : "0";
+      });
+    },
     /** 查询部门列表 */
     getList() {
       this.loading = true

+ 16 - 16
src/views/system/role/index.vue

@@ -34,17 +34,17 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
+<!--      <el-form-item label="创建时间">-->
+<!--        <el-date-picker-->
+<!--          v-model="dateRange"-->
+<!--          style="width: 240px"-->
+<!--          value-format="yyyy-MM-dd"-->
+<!--          type="daterange"-->
+<!--          range-separator="-"-->
+<!--          start-placeholder="开始日期"-->
+<!--          end-placeholder="结束日期"-->
+<!--        ></el-date-picker>-->
+<!--      </el-form-item>-->
       <el-form-item>
         <el-button v-no-more-click type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button v-no-more-click icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -113,11 +113,11 @@
           ></el-switch>
         </template>
       </el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
+<!--      <el-table-column label="创建时间" align="center" prop="createTime" width="180">-->
+<!--        <template slot-scope="scope">-->
+<!--          <span>{{ parseTime(scope.row.createTime) }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope" v-if="scope.row.roleId !== 1">
           <el-button v-no-more-click

+ 3 - 2
src/views/system/technology/technologyDetail/craftDetail.vue

@@ -276,12 +276,13 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item label="所属mars岗位" prop="workstationId">
+<!--        mars岗位-->
+        <el-form-item label="岗位" prop="workstationId">
           <treeselect
             v-model="form.workstationId"
             :options="marsOptions"
             :normalizer="Marsnormalizer"
-            placeholder="选择mars岗位"
+            placeholder="选择岗位"
           />
         </el-form-item>
         <el-form-item label="所属电柜" prop="lotoId">

+ 3 - 2
src/views/system/technology/technologyDetail/deviceDetail.vue

@@ -54,12 +54,13 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item label="所属mars岗位" prop="workstationId">
+<!--        mars岗位-->
+        <el-form-item label="岗位" prop="workstationId">
           <treeselect
             v-model="form.workstationId"
             :options="marsOptions"
             :normalizer="Marsnormalizer"
-            placeholder="选择mars岗位"
+            placeholder="选择岗位"
           />
         </el-form-item>
         <el-form-item label="所属电柜" prop="lotoId">

+ 48 - 36
src/views/system/technology/technologyList/index.vue

@@ -115,8 +115,8 @@
         >
           <el-table-column type="selection" width="55" align="center"/>
           <el-table-column
-            prop="machineryCode"
-            :label="tabPosition === 'craft' ? '工艺编码' : '设备编码'"
+            prop="machineryId"
+            :label="tabPosition === 'craft' ? '工艺编号' : '设备编号'"
           ></el-table-column>
           <el-table-column
             prop="machineryName"
@@ -223,33 +223,34 @@
             placeholder="请输入名称"
           />
         </el-form-item>
-        <el-row>
-          <el-col :span="18">
-            <el-form-item :label="this.tabPosition=='craft'?'工艺编号':'设备编号'" prop="machineryCode">
-              <el-input
-                v-model="form.machineryCode"
-                placeholder="请输入编号"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label-width="30">
-              <el-switch
-                v-model="autoGenFlag"
-                active-color="#13ce66"
-                active-text="自动生成"
-                @change="handleAutoGenChange(autoGenFlag)"
-              >
-              </el-switch>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="所属mars岗位" prop="workstationId">
+<!--        <el-row>-->
+<!--          <el-col :span="18">-->
+<!--            <el-form-item :label="this.tabPosition=='craft'?'工艺编号':'设备编号'" prop="machineryCode">-->
+<!--              <el-input-->
+<!--                v-model="form.machineryCode"-->
+<!--                placeholder="请输入编号"-->
+<!--              />-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--          <el-col :span="6">-->
+<!--            <el-form-item label-width="30">-->
+<!--              <el-switch-->
+<!--                v-model="autoGenFlag"-->
+<!--                active-color="#13ce66"-->
+<!--                active-text="自动生成"-->
+<!--                @change="handleAutoGenChange(autoGenFlag)"-->
+<!--              >-->
+<!--              </el-switch>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
+<!--        mars岗位-->
+        <el-form-item label="岗位" prop="workstationId">
           <treeselect
             v-model="form.workstationId"
             :options="marsOptions"
             :normalizer="Marsnormalizer"
-            placeholder="选择mars岗位"
+            placeholder="选择岗位"
           />
         </el-form-item>
         <el-form-item label="所属电柜" prop="lotoId">
@@ -345,7 +346,7 @@ export default {
       // 查询参数
       queryParams: {
         pages: 1,
-        size: 10,
+        size: -1,
         machineryName: undefined,
         machineryCode: undefined,
         workstationName:undefined,
@@ -428,7 +429,7 @@ export default {
         );
 
 
-        // 岗位新增的下拉
+        // 设备新增的下拉
         this.machineryOptions = this.handleTree(
           response.data.records,
           'machineryId',
@@ -545,7 +546,11 @@ export default {
     handleNodeClick(data) {
       this.queryParams.workstationId = data.id;//这里给查询传递参数
       this.queryParams.workstationName = data.label;//这里给回显框显示中文
-      listMarsDept(this.queryParams).then((response) => {
+      const data1 = {
+        pasge: 1,
+        size: -1
+      }
+      listMarsDept(data1).then((response) => {
         // 新增岗位单选
         this.marsOptions = this.handleTree(
           response.data.records,
@@ -610,7 +615,13 @@ export default {
     // mars树形输入框回显监听
     handleInputChange() {
       this.$refs.treeData.filter(this.queryParams.workstationId) // 调用树的 filter 方法
-      listMarsDept(this.queryParams).then((response) => {
+      const data={
+        page:1,
+        size:-1,
+        workstationId:null,
+        workstationName:null
+      }
+      listMarsDept(data).then((response) => {
         // 新增岗位单选
         this.marsOptions = this.handleTree(
           response.data.records,
@@ -620,14 +631,15 @@ export default {
         // mars岗位树数据
         this.workstationOptions = this.transformToTree(response.data.records)
         // 使用递归函数查找匹配的节点
-        const selectedTreeNode = this.findNodeById(this.workstationOptions, this.queryParams.workstationId)
+        // const selectedTreeNode = this.findNodeById(this.workstationOptions, this.queryParams.workstationId)
         // 不再递归调用 handleNodeClick
-        if (selectedTreeNode) {
-          // 可以在这里执行其他逻辑,但不要再次调用 handleNodeClick
-          console.log('找到匹配的节点:', selectedTreeNode)
-        } else {
-          console.log('未找到匹配的节点')
-        }
+        // if (selectedTreeNode) {
+        //   // 可以在这里执行其他逻辑,但不要再次调用 handleNodeClick
+        //   console.log('找到匹配的节点:', selectedTreeNode)
+        // } else {
+        //   console.log('未找到匹配的节点')
+        //
+        // }
       })
 
     },

+ 83 - 18
src/views/system/unit/index.vue

@@ -1,6 +1,14 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+      <el-form-item label="单位编号" prop="unitId">
+        <el-input
+          v-model="queryParams.unitId"
+          placeholder="请输入单位名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item label="单位名称" prop="unitName">
         <el-input
           v-model="queryParams.unitName"
@@ -9,7 +17,21 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-
+      <el-form-item label="状态" prop="status">
+        <el-select
+          v-model="queryParams.status"
+          placeholder="用户状态"
+          clearable
+          style="width: 240px"
+        >
+          <el-option
+            v-for="dict in dict.type.sys_normal_disable"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button v-no-more-click type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索
         </el-button>
@@ -49,15 +71,26 @@
       :default-expand-all="isExpandAll"
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
-
+      <el-table-column prop="unitId" label="单位编号" width="260"></el-table-column>
       <el-table-column prop="unitName" label="单位名称" width="260"></el-table-column>
-      <el-table-column prop="unitType" label="单位类型" width="260"></el-table-column>
+<!--      <el-table-column prop="unitType" label="单位类型" width="260"></el-table-column>-->
+      <el-table-column prop="orderNum" label="排序" width="260"></el-table-column>
       <el-table-column prop="remark" label="备注" width="260"></el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="200">
+      <el-table-column prop="status" label="状态" width="260">
         <template slot-scope="scope">
-          <span>{{ scope.row.createTime }}</span>
+          <el-switch
+            v-model="scope.row.status"
+            active-value="0"
+            inactive-value="1"
+            @change="handleStatusChange(scope.row)"
+          ></el-switch>
         </template>
       </el-table-column>
+<!--      <el-table-column label="创建时间" align="center" prop="createTime" width="200">-->
+<!--        <template slot-scope="scope">-->
+<!--          <span>{{ scope.row.createTime }}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button v-no-more-click
@@ -68,14 +101,14 @@
                      v-hasPermi="['iscs:unit:edit']"
           >修改
           </el-button>
-          <el-button v-no-more-click
-                     size="mini"
-                     type="text"
-                     icon="el-icon-plus"
-                     @click="handleAdd(scope.row)"
-                     v-hasPermi="['iscs:unit:add']"
-          >新增
-          </el-button>
+<!--          <el-button v-no-more-click-->
+<!--                     size="mini"-->
+<!--                     type="text"-->
+<!--                     icon="el-icon-plus"-->
+<!--                     @click="handleAdd(scope.row)"-->
+<!--                     v-hasPermi="['iscs:unit:add']"-->
+<!--          >新增-->
+<!--          </el-button>-->
 <!--          v-if="scope.row.parentId != 0"-->
           <el-button v-no-more-click
 
@@ -100,14 +133,26 @@
     <el-dialog :title="title" :visible.sync="open" width="400px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
 
-        <el-form-item label="上级" prop="parentId" v-if="form.parentId !== 0">
-          <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级"/>
-        </el-form-item>
+<!--        <el-form-item label="上级" prop="parentId" v-if="form.parentId !== 0">-->
+<!--          <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级"/>-->
+<!--        </el-form-item>-->
         <el-form-item label="单位名称" prop="unitName">
           <el-input v-model="form.unitName" placeholder="请输入单位名称"/>
         </el-form-item>
-        <el-form-item label="单位类型" prop="unitType">
-          <el-input v-model="form.unitType" placeholder="请输入单位类型" />
+<!--        <el-form-item label="单位类型" prop="unitType">-->
+<!--          <el-input v-model="form.unitType" placeholder="请输入单位类型" />-->
+<!--        </el-form-item>-->
+        <el-form-item label="排序" prop="orderNum">
+          <el-input-number type="number" v-model="form.orderNum" />
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-radio-group v-model="form.status">
+            <el-radio
+              v-for="dict in dict.type.sys_normal_disable"
+              :key="dict.value"
+              :label="dict.value"
+            >{{dict.label}}</el-radio>
+          </el-radio-group>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
           <el-input v-model="form.remark" placeholder="请输入备注" />
@@ -128,6 +173,7 @@ import {
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 import { genCode } from '@/api/system/autocode/rule'
+import { updateMarsDeptStatus } from '@/api/system/marsdept'
 
 export default {
   name: 'Dept',
@@ -160,6 +206,7 @@ export default {
         size:10,
         unitName: undefined,
         userId:undefined,
+        unitId:undefined,
       },
       // 表单参数
       form: {},
@@ -179,6 +226,24 @@ export default {
     this.getList()
   },
   methods: {
+    // 用户状态修改
+    handleStatusChange(row) {
+      let text = row.status === "0" ? "启用" : "停用";
+      this.$modal.confirm('确认要"' + text + '""' + row.unitName + '"岗位吗?').then(function() {
+        const data={
+          unitId:row.unitId,
+          unitName:row.unitName,
+          unitType:row.unitType,
+          orderNum:row.orderNum,
+          status:row.status,
+        }
+        return updateUnit(data);
+      }).then(() => {
+        this.$modal.msgSuccess(text + "成功");
+      }).catch(function() {
+        row.status = row.status === "0" ? "1" : "0";
+      });
+    },
     /** 查询单位列表 */
     getList() {
       this.loading = true

+ 18 - 17
src/views/system/user/index.vue

@@ -65,21 +65,7 @@
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
-          <el-form-item label="状态" prop="status">
-            <el-select
-              v-model="queryParams.status"
-              placeholder="用户状态"
-              clearable
-              style="width: 240px"
-            >
-              <el-option
-                v-for="dict in dict.type.sys_normal_disable"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
-          </el-form-item>
+
           <el-form-item label="单位" prop="unitId">
             <treeselect style="width:240px" v-model="queryParams.unitId" :options="UnitOptions" :normalizer="Unitnormalizer" :show-count="true" placeholder="请选择单位" />
           </el-form-item>
@@ -104,6 +90,21 @@
               ></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="状态" prop="status">
+            <el-select
+              v-model="queryParams.status"
+              placeholder="用户状态"
+              clearable
+              style="width: 240px"
+            >
+              <el-option
+                v-for="dict in dict.type.sys_normal_disable"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
 <!--          <el-form-item label="创建时间">-->
 <!--            <el-date-picker-->
 <!--              v-model="dateRange"-->
@@ -180,9 +181,9 @@
         <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="50" align="center" />
           <el-table-column label="工号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
-          <el-table-column label="姓名" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
+          <el-table-column label="姓名" align="center" key="nickName" prop="nickName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
           <el-table-column label="联系电话" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
-          <el-table-column label="登录名" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+          <el-table-column label="登录名" align="center" key="userName" prop="userName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
           <el-table-column label="单位" align="center" key="unitName" prop="unitName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
           <el-table-column label="角色" align="center" key="roleName" prop="roleName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
           <el-table-column label="岗位" align="center" key="workstationName" prop="workstationName" v-if="columns[2].visible" :show-overflow-tooltip="true" >