loulijun2021
2023-08-08 68edca7409736705db50504b003cba66bb4ccd6e
1.新增用户组管理
已添加1个文件
已修改9个文件
1264 ■■■■ 文件已修改
src/api/basicSettings.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/groupSetting.vue 659 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/userList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/makeModel/InventoryList.vue 152 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/produceManager/produceOrder.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/produceManager/produceStartOrder.vue 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/produceManager/workOrder.vue 151 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManager/qualityPlaning.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/basicSettings.js
@@ -215,13 +215,21 @@
  })
}
// ç”¨æˆ·ç»„新增
export function UserGroupAdd(data) {
export function UserGroupAdd(data, type) {
  return request({
    url: 'BasicSetting/UserGroupAdd',
    url: 'BasicSetting/UserGroupAdd?type=' + type,
    method: 'post',
    data
  })
}
// ç”¨æˆ·ç»„查看关联人员
export function GroupUserProject(data) {
  return request({
    url: 'BasicSetting/GroupUserProject',
    method: 'get',
    params: data
  })
}
// ç”¨æˆ·ç»„删除
export function UserGroupDelete(data) {
  return request({
src/layout/components/Navbar.vue
@@ -239,7 +239,7 @@
    this.stu_torgname = getCookie('stu_torgname') === '' ? '系统管理员' : getCookie('stu_torgname')
  },
  mounted() {
    this.getHubConnectionBuilder()
    // this.getHubConnectionBuilder()
  },
  computed: {
    ...mapGetters([
@@ -332,8 +332,8 @@
      this.$store.dispatch('app/toggleSideBar')
    },
    async logout() {
      await this.signalr.stop()
      this.signalr.off('SendCustomUserMessage')
      // await this.signalr.stop()
      // this.signalr.off('SendCustomUserMessage')
      await this.$store.dispatch('user/logout')
      this.$message.success('退出成功!')
      this.$router.push(`/login`)
src/router/index.js
@@ -777,6 +777,12 @@
        code: '1014',
        component: () => import('@/views/basicSettings/installationLampSetting'),
        meta: { code: '1014', title: '安灯设置', icon: '', keepAlive: true }
      }, {
        path: 'groupSetting',
        name: 'groupSettingCancel',
        code: '1015',
        component: () => import('@/views/basicSettings/groupSetting'),
        meta: { code: '1015', title: '班组设置', icon: '', keepAlive: true }
      }
    ]
  },
src/views/basicSettings/groupSetting.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,659 @@
<template>
  <div>
    <div class="body" :style="{height:mainHeight+'px'}">
      <div class="bodyTopButtonGroup" style="justify-content: space-between">
        <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>
        <!--        <el-button v-waves icon="el-icon-download" @click="upload">导入</el-button>-->
      </div>
      <div class="bodyTopFormGroup">
        <el-form
          ref="form"
          :model="form"
          label-width="100px"
          inline
          style="display: flex;"
        >
          <div class="elForm">
            <el-form-item label="班组编码" style=" display: flex;">
              <el-input v-model="form.groupcode" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item label="班组名称" style=" display: flex;">
              <el-input v-model="form.groupname" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <!--            <el-form-item label="所属组织" style=" display: flex;">-->
            <!--              <el-input v-model="form.stu_torgcode" placeholder="请输入" style="width: 200px" />-->
            <!--            </el-form-item>-->
            <!--            <el-form-item label="组织类型" style=" display: flex;">-->
            <!--              <el-select v-model="form.description" style="width: 200px" placeholder="请选择">-->
            <!--                <el-option-->
            <!--                  v-for="item in OrgTypeArr"-->
            <!--                  :key="item.code"-->
            <!--                  :label="item.name"-->
            <!--                  :value="item.code"-->
            <!--                />-->
            <!--              </el-select>-->
            <!--            </el-form-item>-->
          </div>
          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
            <el-button v-waves type="primary" icon="el-icon-search" @click="search">查询</el-button>
            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
          </div>
        </el-form>
        <div
          class="bodyTopFormExpand"
        >
          <!--          <svg-icon-->
          <!--            v-show="mouseHoverType==='mouseout'"-->
          <!--            style="cursor: pointer"-->
          <!--            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
          <!--            @mouseenter="mouseHoverType=$event.type"-->
          <!--          />-->
          <!--          <svg-icon-->
          <!--            v-show="mouseHoverType==='mouseenter'"-->
          <!--            style="cursor: pointer"-->
          <!--            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
          <!--            @click="isExpandForm=!isExpandForm"-->
          <!--            @mouseout="mouseHoverType=$event.type"-->
          <!--          />-->
        </div>
      </div>
      <div class="elTableDiv">
        <el-table
          ref="tableDataRef"
          class="tableFixed"
          :data="tableData"
          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
          border
          :row-class-name="tableRowClassName"
          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
          highlight-current-row
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
          @sort-change="sortChange"
        >
          <el-table-column
            prop="RowNum"
            width="50"
            fixed
            label="序号"
          />
          <!--          <el-table-column-->
          <!--            prop="torg_code"-->
          <!--            label="组织编码"-->
          <!--            sortable="custom"-->
          <!--          />-->
          <el-table-column
            prop="group_code"
            label="班组编码"
            sortable="custom"
          />
          <el-table-column
            prop="group_name"
            label="班组名称"
            sortable="custom"
          />
          <el-table-column
            prop="org_name"
            label="所属组织"
            sortable="custom"
          />
          <el-table-column
            prop="description"
            label="描述"
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.description">{{ row.description }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            label="操作"
            width="120"
            fixed="right"
          >
            <template slot-scope="{row}">
              <div class="operationClass">
                <el-tooltip class="item" effect="dark" content="查看" placement="top">
                  <i
                    class="el-icon-view"
                    :style="{color:$store.state.settings.theme}"
                    style="margin-right:15px;cursor: pointer;"
                    @click="view(row)"
                  />
                </el-tooltip>
                <el-tooltip class="item" effect="dark" content="编辑" placement="top">
                  <i class="el-icon-edit-outline" @click="edit('edit',row)" />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
                  <i class="el-icon-delete" @click="del(row)" />
                </el-tooltip>
              </div>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <!--分页-->
      <pagination
        :total="total"
        :page.sync="form.page"
        :limit.sync="form.rows"
        align="right"
        layout="total,prev, pager, next,sizes"
        popper-class="select_bottom"
        @pagination="getUserGroupSearch"
      />
    </div>
    <el-dialog
      v-el-drag-dialog
      :title="operation==='add'?'新增':'编辑'"
      :visible.sync="dialogVisible"
      width="800px"
      :close-on-click-modal="false"
      top="15vh"
      @closed="handleClose"
      @close="handleClose"
    >
      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
        <el-form-item label="班组编码" prop="groupcode">
          <el-input v-model="dialogForm.groupcode" :disabled="operation!=='add'" style="width: 200px" />
        </el-form-item>
        <el-form-item label="班组名称" prop="groupname">
          <el-input v-model="dialogForm.groupname" style="width: 200px" />
        </el-form-item>
        <!--        <el-form-item prop="description" label="所属组织">-->
        <el-form-item required label="所属组织">
          <el-cascader
            ref="dialogCascader"
            key="cascaderKey"
            v-model="dialogForm.stu_torgcode"
            filterable
            popper-class="elCascader"
            :options="StuOrgArr"
            :props="defaultProps"
            style="width: 200px;"
          />
          <!--          <el-select-->
          <!--            v-model="dialogForm.description"-->
          <!--            style="width: 200px"-->
          <!--            placeholder="请选择"-->
          <!--            :popper-append-to-body="false"-->
          <!--          >-->
          <!--            <el-option-->
          <!--              v-for="item in SupUnitArr"-->
          <!--              :key="item.code"-->
          <!--              :label="item.name"-->
          <!--              :value="item.code"-->
          <!--            />-->
          <!--          </el-select>-->
        </el-form-item>
        <el-form-item label="班组人员">
          <el-select
            v-model="dialogForm.usercode"
            :popper-append-to-body="false"
            filterable
            multiple
            collapse-tags
            style="width: 200px"
            placeholder="请选择"
          >
            <el-option
              v-for="item in userArr"
              :key="item.usercode"
              :label="item.username"
              :value="item.usercode"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="描述">
          <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" />
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button v-waves @click="dialogVisibleCancel">取 æ¶ˆ</el-button>
          <el-button v-waves type="primary" @click="dialogVisibleConfirm">ç¡® å®š</el-button>
        </div>
      </span>
    </el-dialog>
    <el-dialog
      v-el-drag-dialog
      title="查看"
      :visible.sync="viewDialogVisible"
      width="800px"
      :close-on-click-modal="false"
      top="15vh"
      @closed="handleViewClose"
      @close="handleViewClose"
    >
      <div style="height: 200px;width: 100%;background-color: aliceblue;padding:20px">
        <el-tag
          v-for="tag in viewUserArr"
          :key="tag.usercode"
          type="success"
          style="margin-right: 15px;min-width: 80px;text-align: center"
          :style="{color:$store.state.settings.theme}"
        >
          {{ tag.username }}
        </el-tag>
      </div>
    </el-dialog>
    <!--导入组件-->
    <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" />
  </div>
</template>
<script>
import Pagination from '@/components/Pagination'
import {
  AddUpdateOrganization,
  DeleteOrganization, GroupUserProject,
  OrganizationSearch,
  PrentOrganization, UserGroupAdd, UserGroupDelete,
  UserGroupSearch, UserOrganization
} from '@/api/basicSettings'
import { getCookie } from '@/utils/auth'
import ImportPicker from '@/components/ImportPicker'
import clearAllChildren, { validateCode } from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
import { MesOrderSelectUser } from '@/api/produceManager'
export default {
  name: 'Zzjg',
  components: {
    Pagination, ImportPicker
  },
  directives: { elDragDialog, waves },
  data() {
    return {
      mouseHoverType: 'mouseout',
      isExpandForm: false,
      mainHeight: 0,
      tableHeight: 0,
      form: {
        groupcode: '', //
        groupname: '', //
        stu_torgcode: getCookie('stu_torgcode'), // æ‰€å±žç»„织
        description: getCookie('description'), // ç»„织类型
        prop: 'group_code', // æŽ’序字段
        order: 'desc', // æŽ’序字段
        page: 1, // ç¬¬å‡ é¡µ
        rows: 20 // æ¯é¡µå¤šå°‘条
      },
      OrgTypeArr: [
        { name: '部门', code: 'D' },
        { name: '车间', code: 'W' }
      ],
      defaultProps: {
        checkStrictly: true,
        value: 'code',
        label: 'name',
        children: 'children',
        emitPath: false
      },
      StuOrgArr: [], // æ‰€å±žç»„织数组
      total: 10,
      tableData: [],
      dialogVisible: false,
      dialogForm: {
        stu_torgcode: '',
        groupcode: '',
        groupname: '',
        usercode: [],
        description: ''// æè¿°
      },
      operation: '',
      dialogFormRules: {
        // description: [
        //   { required: true, message: '请选择所属组织', trigger: ['blur', 'change'] }
        // ],
        groupcode: [
          { required: true, validator: validateCode, trigger: ['blur', 'change'] }
        ],
        groupname: [
          { required: true, message: '请输入班组名称', trigger: ['blur', 'change'] }
        ]
      },
      userArr: [],
      viewDialogVisible: false,
      viewUserArr: [],
      title_value: '数据导入 / ç‚¹æ£€éƒ¨ä½',
      code: '4',
      shows: false
    }
  },
  watch: {
    shows() {
      if (!this.shows) {
        this.getUserGroupSearch()
      }
    }
  },
  created() {
    this.getUserGroupSearch()
  },
  mounted() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
    this.getUserOrganization()
    this.getMesOrderSelectUser()
  },
  methods: {
    async getMesOrderSelectUser() {
      const { data: res } = await MesOrderSelectUser({ usercode: '' })
      this.userArr = res
    },
    async getUserOrganization() {
      const { data: res } = await UserOrganization()
      this.StuOrgArr = clearAllChildren(res)
    },
    async getUserGroupSearch() {
      const res = await UserGroupSearch(this.form)
      this.tableData = res.data
      this.total = res.count
    },
    // æŽ’序改变时
    sortChange({ column, prop, order }) {
      if (order === 'descending') {
        order = 'desc'
      } else if (order === 'ascending') {
        order = 'asc'
      } else {
        order = 'desc'
      }
      this.form.order = order
      this.form.prop = prop
      this.getUserGroupSearch()
    },
    // æŸ¥è¯¢
    search() {
      this.getUserGroupSearch()
    },
    // å¯¼å…¥æŒ‰é’®
    upload() {
      this.shows = true
      this.$refs.importPickerFunc.newDataFunc()
    },
    colos() {
      this.shows = false
    },
    // é‡ç½®
    reset() {
      this.form.groupcode = ''
      this.form.groupname = ''
      // this.form.stu_torgcode = ''
      // this.form.description = ''
      this.getUserGroupSearch()
    },
    // é¢„览
    async  view(row) {
      const res = await GroupUserProject({ groupcode: row.group_code })
      if (res.code === '200') {
        this.viewUserArr = res.data
        this.viewDialogVisible = true
      }
    },
    handleViewClose() {
      this.viewUserArr = []
    },
    // æ–°å¢žæŒ‰é’®
    add(operation) {
      this.operation = operation
      this.dialogVisible = true
    },
    // ä¿®æ”¹æŒ‰é’®
    async  edit(operation, row) {
      this.operation = operation
      this.dialogVisible = true
      this.$nextTick(() => {
        this.dialogForm.stu_torgcode = row.torg_code
        // this.dialogForm.groupcode = row.group_code
        this.dialogForm.groupcode = row.group_code
        this.dialogForm.groupname = row.group_name
        this.dialogForm.description = row.description
      })
      const res = await GroupUserProject({ groupcode: row.group_code })
      this.dialogForm.usercode = res.data.map(i => i.usercode)
    },
    // åˆ é™¤æŒ‰é’®
    async del(row) {
      this.$confirm('是否确认删除?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        UserGroupDelete({ UserGrupCode: row.group_code }).then(res => {
          if (res.code === '200') {
            this.$message.success('删除成功!')
            if (this.form.page > 1 && this.tableData.length === 1) {
              this.form.page--
            }
            this.getUserGroupSearch()
          }
        })
      }).catch(() => {
        this.$message.info('已取消删除')
      })
    },
    // å¯¹è¯æ¡†å…³é—­äº‹ä»¶
    handleClose() {
      this.dialogForm.usercode = []
      this.dialogForm.stu_torgcode = ''
      this.dialogForm.groupcode = ''
      this.dialogForm.groupname = ''
      this.dialogForm.description = ''
      this.$refs.dialogForm.clearValidate()
    },
    // å¯¹è¯æ¡†å–消
    dialogVisibleCancel() {
      this.dialogVisible = false
    },
    // å¯¹è¯æ¡†ç¡®è®¤
    dialogVisibleConfirm() {
      // [
      //   {
      //     "storg_code": "string",
      //     "code": "string",
      //     "name": "string",
      //     "flag": "string",
      //     "children": [
      //       {
      //         "usercode": "string",
      //         "username": "string"
      //       }
      //     ]
      //   }
      // ]
      this.$refs.dialogForm.validate(valid => {
        if (valid) {
          const children = []
          this.dialogForm.usercode.forEach(i => {
            const t = this.userArr.find(j => j.usercode === i)
            console.log(t, 9)
            if (t) {
              children.push({
                username: t.username,
                usercode: i
              })
            }
          })
          const data = [{
            storg_code: this.dialogForm.stu_torgcode,
            code: this.dialogForm.groupcode,
            name: this.dialogForm.groupname,
            flag: this.dialogForm.description,
            children
          }]
          UserGroupAdd(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
            if (res.code === '200') {
              this.$message.success(this.operation === 'add' ? '添加成功!' : '修改成功!')
              this.dialogVisible = false
              this.getUserGroupSearch()
            } else {
              this.$message.error(this.operation === 'add' ? '添加失败!' : '修改失败!')
            }
          })
        }
      })
    },
    // èŽ·å–é¡µé¢é«˜åº¦
    getHeight() {
      this.$nextTick(() => {
        this.mainHeight = window.innerHeight - 85
        this.tableHeight = this.mainHeight - 235
        this.$refs.tableDataRef.doLayout()
      })
    },
    tableRowClassName({ row, rowIndex }) {
      return 'custom-row'
    }
  }
}
</script>
<!--公共页面样式-->
<style lang="scss" scoped>
$main_color: #42b983;
::v-deep .el-button--text{
  font-size: 14px ;
  cursor: pointer ;
}
.el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
  color: $main_color;
  cursor: pointer;
}
.el-icon-edit-outline{
  margin-right: 15px;
}
::v-deep .el-button--primary, .el-button--default, .el-button--info {
  height: 34px;
  display: flex;
  align-items: center;
  padding: 0 15px;
}
::v-deep .el-button--primary {
  //background-color: $main_color !important;
}
::v-deep .el-button--default {
  background-color: #f8f8fa;
  border: none;
}
::v-deep .el-input__inner {
  height: 34px;
  line-height: 34px;
  //color: #a7a7a7;
}
::v-deep .el-dialog__body {
  padding: 20px 100px !important;
}
::v-deep .dialogVisibleRoles .el-dialog__body {
  padding: 20px 20px !important;
}
::v-deep .importPickerClass .el-dialog__body {
  padding: 20px 20px !important;
}
::v-deep .el-dialog__footer {
  display: flex;
  justify-content: flex-end;
}
::v-deep .el-table .caret-wrapper {
  transform: scale(0.8);
}
::v-deep .cell {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
::v-deep .el-table::before {
  height: 0;
}
::v-deep .el-table__body-wrapper {
  background-color: #f8f8fa;
}
::v-deep .el-table__body .el-table__row.hover-row td{
  background-color: #eaecef ;
}
::v-deep .el-form--inline .el-form-item__label {
  color: #a7a7a7;
}
.body ::v-deep .el-divider {
  border: 1px solid #eee;
  width: 99%;
  margin: 10px auto;
}
.body ::v-deep .el-form-item {
  margin-bottom: 0;
}
.userDialogVisible ::v-deep .el-form-item {
  margin-bottom: 0;
}
::v-deep .el-select__caret{
  display: flex;
  align-items: center;
  justify-content: center;
}
.tableFixed{
  ::v-deep .el-table__fixed-right{
    height: 100% !important;
  }
  ::v-deep .el-table__fixed{
    height: 100% !important;
  }
}
</style>
<style>
.el-table .custom-row {
  background: #f8f8fa;
}
</style>
src/views/basicSettings/userList.vue
@@ -6,7 +6,7 @@
        <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>
        <div style="display: flex">
          <el-button v-waves icon="el-icon-menu" @click="workingTramClick">生产班组</el-button>
          <!--          <el-button v-waves icon="el-icon-menu" @click="workingTramClick">生产班组</el-button>-->
          <el-button v-waves icon="el-icon-download" @click="upload">导入</el-button>
        </div>
      </div>
src/views/makeModel/InventoryList.vue
@@ -336,85 +336,85 @@
        </el-form-item>
      </el-form>
      <el-collapse>
        <el-collapse-item title="一致性 Consistency" name="1">
          <template slot="title">
            <div>
              <i
                class="el-icon-s-operation"
                :style="{color:$store.state.settings.theme}"
                style="margin: -20px 10px 20px 20px"
              />高级设置:
            </div>
          </template>
          <div
            style="display: flex;flex-direction: column;height: 140px; align-content: center;justify-content: space-between"
          >
            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">
              <div>
                <el-tooltip
                  class="item"
                  effect="dark"
                  content=""
                  placement="top"
                >
                  <div slot="content" style="width: 300px">
                    å¯ç”¨ç®¡ç†åŽåº“存数量会按标签分开显示,需要做采购到货才能入库,且生产发料需要扫码标签进行发料,不启用批次管理的不需要采购到货,可以直接选择物料采购入库,且入库后会合并显示该物料的库存,生产发料则按库位进行出库。
                  </div>
                  <i class="el-icon-question" :style="{color:$store.state.settings.theme}" />
                </el-tooltip>
              </div>
      <!--      <el-collapse>-->
      <!--        <el-collapse-item title="一致性 Consistency" name="1">-->
      <!--          <template slot="title">-->
      <!--            <div>-->
      <!--              <i-->
      <!--                class="el-icon-s-operation"-->
      <!--                :style="{color:$store.state.settings.theme}"-->
      <!--                style="margin: -20px 10px 20px 20px"-->
      <!--              />高级设置:-->
      <!--            </div>-->
      <!--          </template>-->
      <!--          <div-->
      <!--            style="display: flex;flex-direction: column;height: 140px; align-content: center;justify-content: space-between"-->
      <!--          >-->
      <!--            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">-->
      <!--              <div>-->
      <!--                <el-tooltip-->
      <!--                  class="item"-->
      <!--                  effect="dark"-->
      <!--                  content=""-->
      <!--                  placement="top"-->
      <!--                >-->
      <!--                  <div slot="content" style="width: 300px">-->
      <!--                    å¯ç”¨ç®¡ç†åŽåº“存数量会按标签分开显示,需要做采购到货才能入库,且生产发料需要扫码标签进行发料,不启用批次管理的不需要采购到货,可以直接选择物料采购入库,且入库后会合并显示该物料的库存,生产发料则按库位进行出库。-->
      <!--                  </div>-->
      <!--                  <i class="el-icon-question" :style="{color:$store.state.settings.theme}" />-->
      <!--                </el-tooltip>-->
      <!--              </div>-->
              <div style="margin: 0 3px">批次管理:</div>
              <el-switch
                v-model="isBatchNo"
              />
            </div>
            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">
              <div style="margin: 0 3px">先进先出:</div>
              <el-switch
                v-model="isFifo"
              />
            </div>
            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">
              <div>
                <el-tooltip
                  class="item"
                  effect="dark"
                  content=""
                  placement="top"
                >
                  <div slot="content" style="width: 300px">开启后该物料必须做入厂检验或质量判断合格后才能做入厂反则该物料质量状态为待检状态是不允许入厂的。</div>
                  <i class="el-icon-question" :style="{color:$store.state.settings.theme}" />
                </el-tooltip>
              </div>
      <!--              <div style="margin: 0 3px">批次管理:</div>-->
      <!--              <el-switch-->
      <!--                v-model="isBatchNo"-->
      <!--              />-->
      <!--            </div>-->
      <!--            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">-->
      <!--              <div style="margin: 0 3px">先进先出:</div>-->
      <!--              <el-switch-->
      <!--                v-model="isFifo"-->
      <!--              />-->
      <!--            </div>-->
      <!--            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">-->
      <!--              <div>-->
      <!--                <el-tooltip-->
      <!--                  class="item"-->
      <!--                  effect="dark"-->
      <!--                  content=""-->
      <!--                  placement="top"-->
      <!--                >-->
      <!--                  <div slot="content" style="width: 300px">开启后该物料必须做入厂检验或质量判断合格后才能做入厂反则该物料质量状态为待检状态是不允许入厂的。</div>-->
      <!--                  <i class="el-icon-question" :style="{color:$store.state.settings.theme}" />-->
      <!--                </el-tooltip>-->
      <!--              </div>-->
              <div style="margin: 0 3px">入厂检验:</div>
              <el-switch
                v-model="isInCheck"
              />
            </div>
            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">
              <div>
                <el-tooltip
                  class="item"
                  effect="dark"
                  content=""
                  placement="top"
                >
                  <div slot="content" style="width: 300px">开启后该物料必须做出厂检验或质量判断合格后才能做出厂,反则该物料质量状态为待检状态是不允许出厂的。</div>
                  <i class="el-icon-question" :style="{color:$store.state.settings.theme}" />
                </el-tooltip>
              </div>
      <!--              <div style="margin: 0 3px">入厂检验:</div>-->
      <!--              <el-switch-->
      <!--                v-model="isInCheck"-->
      <!--              />-->
      <!--            </div>-->
      <!--            <div style="display: flex;width: 200px;align-content: center;justify-content: flex-end">-->
      <!--              <div>-->
      <!--                <el-tooltip-->
      <!--                  class="item"-->
      <!--                  effect="dark"-->
      <!--                  content=""-->
      <!--                  placement="top"-->
      <!--                >-->
      <!--                  <div slot="content" style="width: 300px">开启后该物料必须做出厂检验或质量判断合格后才能做出厂,反则该物料质量状态为待检状态是不允许出厂的。</div>-->
      <!--                  <i class="el-icon-question" :style="{color:$store.state.settings.theme}" />-->
      <!--                </el-tooltip>-->
      <!--              </div>-->
              <div style="margin: 0 3px">出厂检验:</div>
              <el-switch
                v-model="isOutCheck"
              />
            </div>
          </div>
        </el-collapse-item>
      </el-collapse>
      <!--              <div style="margin: 0 3px">出厂检验:</div>-->
      <!--              <el-switch-->
      <!--                v-model="isOutCheck"-->
      <!--              />-->
      <!--            </div>-->
      <!--          </div>-->
      <!--        </el-collapse-item>-->
      <!--      </el-collapse>-->
      <!--      </div>-->
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
src/views/produceManager/produceOrder.vue
@@ -45,18 +45,24 @@
            <el-form-item label="订单编号" style=" display: flex;">
              <el-input v-model="form.erpordercode" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item label="销售订单" style=" display: flex;">
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item label="产品编码" style=" display: flex;">
              <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item label="产品名称" style=" display: flex;">
            <el-form-item v-show="isExpandForm" label="产品名称" style=" display: flex;">
              <el-input v-model="form.partname" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="产品规格" style=" display: flex;">
              <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="创建人员" style=" display: flex;">
              <el-input v-model="form.creatuser" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <!--            <el-form-item v-show="isExpandForm" label="创建人员" style=" display: flex;">-->
            <!--              <el-input v-model="form.creatuser" style="width: 200px" placeholder="请输入" />-->
            <!--            </el-form-item>-->
            <el-form-item
              v-show="isExpandForm"
              label="预计开工时间"
@@ -196,6 +202,18 @@
            sortable="custom"
            min-width="150"
          />
          <el-table-column
            show-tooltip-when-overflow
            prop="saleOrderCode"
            label="销售订单"
            sortable="custom"
            width="150"
          >
            <template slot-scope="{row}">
              <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="partcode"
            label="产品编码"
@@ -482,6 +500,7 @@
        partname: '', // äº§å“åç§°
        partspec: '', // äº§å“è§„æ ¼
        creatuser: '', // åˆ›å»ºäººå‘˜
        saleordercode: '', // é”€å”®è®¢å•
        // paystartdate: '', // äº¤ä»˜æ—¶é—´
        paystartdate: '', // é¢„计开工时间
        payenddate: '', // é¢„计完工时间
@@ -520,6 +539,8 @@
        ordernum: '', // ä¸‹å•单数
        relse_qty: '', // å·²ä¸‹å•数量
        saleOrderDeliveryDate: '', // é¢„计交付日期
        saleordercode: '', // é”€å”®è®¢å•
        saleOrderDeliveryDateIsDisabled: false// é¢„计交付日期字段是否可修改
      },
@@ -585,6 +606,7 @@
        partspec: this.form.partspec, // äº§å“è§„æ ¼
        paystartdate: tempDate2, // äº¤ä»˜æ—¶é—´
        payenddate: tempDate, // äº¤ä»˜æ—¶é—´
        saleordercode: this.form.saleordercode,
        creatuser: this.form.creatuser, // åˆ›å»ºäººå‘˜
        // createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // åˆ›å»ºæ—¶é—´
@@ -653,6 +675,7 @@
      this.form.paystartdate = ''
      this.form.payenddate = ''
      this.form.creatuser = ''
      this.form.erpordercode = ''
      this.form.createdate = ''
      this.getErpOrderSearch()
    },
@@ -717,6 +740,8 @@
        this.dialogForm.warehousecode = row.stck_code
        this.dialogForm.warehousename = row.stck_name
        this.dialogForm.saleordercode = row.saleOrderCode
        this.dialogForm.saleOrderDeliveryDate = row.saleOrderDeliveryDate
        this.dialogForm.saleOrderDeliveryDateIsDisabled = this.dialogForm.saleOrderDeliveryDate !== null
@@ -740,6 +765,8 @@
      this.dialogForm.warehousename = ''
      this.dialogForm.saleOrderDeliveryDate = ''
      this.dialogForm.saleordercode = ''
      this.dialogForm.erpqty = ''
      this.dialogForm.markqty = ''
@@ -782,6 +809,7 @@
            'markqty': this.dialogForm.markqty,
            'ordernum': this.dialogForm.ordernum,
            'relse_qty': this.dialogForm.relse_qty,
            'saleordercode': this.dialogForm.saleordercode,
            'saleOrderDeliveryDate': handleDatetime(this.dialogForm.saleOrderDeliveryDate) + ' 00:00:00'
          }
src/views/produceManager/produceStartOrder.vue
@@ -15,7 +15,20 @@
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
              <!--                @keyup.native="e=>judgeIsScanning(e,'produceCode')"-->
              <div style="width: 90px;margin-left: 20px">生产设备:</div>
              <el-select
                v-model="form.SelectType"
                style="width: 200px;"
                placeholder="请选择"
                @change="selectTypeChange"
              >
                <el-option
                  v-for="item in ZZeqpArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>
            </div>
            <div v-if="false" style="display: flex;padding-right: 10px">
              <el-button v-waves @click="ZZstart">
@@ -575,19 +588,20 @@
          <div style="width: 200px">{{ dialogForm.startqty }}</div>
          <!--          <div style="width: 200px">{{  dialogForm.noreportqty }}</div>-->
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制开始'" prop="eqpcode" label="生产设备:">
          <el-select
            v-model="dialogForm.eqpcode"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in ZZeqpArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        <el-form-item v-if="dialogTitle==='自制开始'" label="生产设备:">
          <div style="width: 200px">{{ form.SelectType? ZZeqpArr.find(i=>i.code===form.SelectType).name:'' }}</div>
          <!--          <el-select-->
          <!--            v-model="dialogForm.eqpcode"-->
          <!--            style="width: 200px;"-->
          <!--            placeholder="请选择"-->
          <!--          >-->
          <!--            <el-option-->
          <!--              v-for="item in ZZeqpArr"-->
          <!--              :key="item.code"-->
          <!--              :label="item.name"-->
          <!--              :value="item.code"-->
          <!--            />-->
          <!--          </el-select>-->
        </el-form-item>
        <!--     è‡ªåˆ¶æŠ¥å·¥   -->
        <el-form-item v-if="dialogTitle==='自制报工'" label="下道工序:" style="margin: 0 10px 0 0">
@@ -1343,6 +1357,7 @@
      WXradioSelected: '', // å·¥åºé€‰ä¸­
      form: {
        orderstepqrcode: '', // æ‰«æçš„二维码信息
        SelectType: '', // è®¾å¤‡ç¼–码
        prop: 'lm_date', // æŽ’序字段
        order: 'desc', // æŽ’序字段
        page: 1, // ç¬¬å‡ é¡µ
@@ -1765,24 +1780,23 @@
      // æ”¶æ–™ï¼šcode="200"  count=3
      // èµ°åˆ—表形式 code="200"  count=4
      if (belong === 'produceCode') {
        const orderstepqrcode = this.form.orderstepqrcode
        const data = {
          OperType: 'ZZ',
          orderstepqrcode: orderstepqrcode,
          SelectType: '',
          stu_torgcode: getCookie('stu_torgcode')
        }
        const res = await MesOrderStepStart(data)
        if (res.code === '200' && res.count === 0) {
          // console.log(res, 777)
          // if (parseFloat(res.data.startqty) === 0) {
          //   return this.$message.error('')
          // }
          await this.ZZstart(res.data)
        }
        if (res.code === '200' && res.count === 1) {
          await this.ZZreport(res.data)
        }
        await this.getMesOrderStepStartSelectEqp()
        // const orderstepqrcode = this.form.orderstepqrcode
        // const data = {
        //   OperType: 'ZZ',
        //   orderstepqrcode: orderstepqrcode,
        //   SelectType: this.form.SelectType,
        //   stu_torgcode: getCookie('stu_torgcode')
        // }
        // const res = await MesOrderStepStart(data)
        // if (res.code === '200' && res.count === 0) {
        //   await this.ZZstart(res.data)
        // }
        // if (res.code === '200' && res.count === 1) {
        //   await this.ZZreport(res.data)
        // }
      }
      if (belong === 'WXproduceCode') {
        const orderstepqrcode = this.WXform.orderstepqrcode
@@ -1836,7 +1850,7 @@
        this.dialogForm.startqty = obj.noreportqty
      })
      await this.getMesOrderStepStartSelectEqp()
      // await this.getMesOrderStepStartSelectEqp()
    },
    // è‡ªåˆ¶æŠ¥å·¥
    async ZZreport(obj) {
@@ -1846,37 +1860,37 @@
      this.dialogTitle = '自制报工'
      this.dialogVisible = true
      this.dialogForm.wo_code = obj.wo_code
      this.dialogForm.partcode = obj.partnumber
      this.dialogForm.partname = obj.partname
      this.dialogForm.partspec = obj.partspec
      this.dialogForm.stepseq = obj.seq
      this.dialogForm.stepcode = obj.stepcode
      this.dialogForm.stepname = obj.stepname
      this.dialogForm.stepdesc = obj.stepdesc
      this.dialogForm.planqty = obj.planqty
      this.dialogForm.reportqty = obj.reportqty
      this.dialogForm.noputqty = obj.noputqty
      this.dialogForm.noreportqty = obj.noreportqty
      // this.dialogForm.startqty = obj.startqty
      this.dialogForm.startqty = obj.noreportqty
      this.dialogForm.nextstepname = obj.nextstepname
      this.dialogForm.nextstepcode = obj.nextstepcode
      this.dialogForm.startqtySum = obj.noreportqty
      this.dialogForm.eqpname = obj.eqpname
      this.dialogForm.eqpcode = obj.eqpcode
      console.log(obj.wkshopcode, 7)
      this.dialogForm.wkshopcode = obj.wkshopcode
      this.dialogForm.wkshopname = obj.wkshopname
      this.$nextTick(() => {
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
        this.dialogForm.partspec = obj.partspec
        this.dialogForm.stepseq = obj.seq
        this.dialogForm.stepcode = obj.stepcode
        this.dialogForm.stepname = obj.stepname
        this.dialogForm.stepdesc = obj.stepdesc
        this.dialogForm.planqty = obj.planqty
        this.dialogForm.reportqty = obj.reportqty
        this.dialogForm.noputqty = obj.noputqty
        this.dialogForm.noreportqty = obj.noreportqty
        // this.dialogForm.startqty = obj.startqty
        this.dialogForm.startqty = obj.noreportqty
        this.dialogForm.nextstepname = obj.nextstepname
        this.dialogForm.nextstepcode = obj.nextstepcode
        this.dialogForm.startqtySum = obj.noreportqty
        this.dialogForm.eqpname = obj.eqpname
        this.dialogForm.eqpcode = obj.eqpcode
        this.dialogForm.wkshopcode = obj.wkshopcode
        this.dialogForm.wkshopname = obj.wkshopname
        this.$refs.userTableDataRef.doLayout()
      })
      await this.getMesOrderStepStartSelectEqp()
      // await this.getMesOrderStepStartSelectEqp()
      await this.getMesOrderStepReportSelectUserGroup()
      await this.getMesOrderStepSelectCause('ZZ')
      await this.getMesOrderSelectUserZZ()
@@ -1966,6 +1980,8 @@
    },
    // èŽ·å–è‡ªåˆ¶æŠ¥å·¥ç”Ÿäº§ç­ç»„ä¸‹æ‹‰åˆ—è¡¨
    async getMesOrderStepReportSelectUserGroup() {
      // this.dialogForm.wkshopcode
      console.log(this.dialogForm.wkshopcode, 8)
      const { data: res } = await MesOrderStepReportSelectUserGroup({ wkshopcode: this.dialogForm.wkshopcode })
      this.ZZtreams = res
    },
@@ -2006,6 +2022,27 @@
      const { data: res } = await MesOrderStepSelectCause({ orderstepqrcode: orderstepqrcode })
      this.badArr = res
    },
    // å¼€å·¥é€‰æ‹©è®¾å¤‡æ”¹å˜æ—¶
    async selectTypeChange(val) {
      this.form.SelectType = val
      const orderstepqrcode = this.form.orderstepqrcode
      const data = {
        OperType: 'ZZ',
        orderstepqrcode: orderstepqrcode,
        SelectType: this.form.SelectType,
        stu_torgcode: getCookie('stu_torgcode')
      }
      const res = await MesOrderStepStart(data)
      if (res.code === '200' && res.count === 0) {
        await this.ZZstart(res.data)
      }
      if (res.code === '200' && res.count === 1) {
        await this.ZZreport(res.data)
      }
    },
    // æŠ¥å·¥æŸ¥è¯¢ç”¨æˆ·è¡¨
    async getUserTableData() {
      const { data: res } = await MesOrderGroupSelectUser({ usergroupcode: this.dialogForm.usergroupcode })
@@ -2139,36 +2176,36 @@
      this.WXform.orderstepqrcode = ''
      this.badForm.orderstepqrcode = ''
      this.dialogForm.wo_code = '', // å·¥å•编号
      this.dialogForm.partcode = '', // äº§å“ç¼–码
      this.dialogForm.partname = '', // äº§å“åç§°
      this.dialogForm.partspec = '', // äº§å“è§„æ ¼
      this.dialogForm.stepseq = '', // å·¥åºåºå·
      this.dialogForm.stepcode = '', // å·¥åºç¼–码
      this.dialogForm.stepname = '', // å½“前工序名
      this.dialogForm.nextstepname = '', // ä¸‹ä¸€é“工序名
      this.dialogForm.stepdesc = '', // å·¥åºæè¿°
      this.dialogForm.planqty = '', // ä»»åŠ¡æ•°é‡
      this.dialogForm.reportqty = '', // å·²æŠ¥æ•°é‡
      this.dialogForm.noreportqty = '', // æœªæŠ¥æ•°é‡
      this.dialogForm.startqty = '', // å¼€(报)工数量
      this.dialogForm.wo_code = '' // å·¥å•编号
      this.dialogForm.partcode = '' // äº§å“ç¼–码
      this.dialogForm.partname = '' // äº§å“åç§°
      this.dialogForm.partspec = '' // äº§å“è§„æ ¼
      this.dialogForm.stepseq = ''// å·¥åºåºå·
      this.dialogForm.stepcode = '' // å·¥åºç¼–码
      this.dialogForm.stepname = '' // å½“前工序名
      this.dialogForm.nextstepname = ''// ä¸‹ä¸€é“工序名
      this.dialogForm.stepdesc = '' // å·¥åºæè¿°
      this.dialogForm.planqty = '' // ä»»åŠ¡æ•°é‡
      this.dialogForm.reportqty = '' // å·²æŠ¥æ•°é‡
      this.dialogForm.noreportqty = '' // æœªæŠ¥æ•°é‡
      this.dialogForm.startqty = '' // å¼€(报)工数量
      this.dialogForm.wxcode = '', // å¤–协供应商编码
      this.dialogForm.outuser = '', // å‘料人员
      this.dialogForm.taskqty = '', // ä»»åŠ¡æ•°é‡
      this.dialogForm.fqty = '', // å‘料数量
      this.dialogForm.wxcode = '' // å¤–协供应商编码
      this.dialogForm.outuser = '' // å‘料人员
      this.dialogForm.taskqty = '' // ä»»åŠ¡æ•°é‡
      this.dialogForm.fqty = '' // å‘料数量
      this.dialogForm.inuser = getCookie('navTabId'), // æ”¶æ–™äººå‘˜  é»˜è®¤ç™»å½•人员
      this.dialogForm.sqty = '', // æ”¶æ–™æ•°é‡
      this.dialogForm.ngqty = '', // ä¸è‰¯æ•°é‡
      this.dialogForm.badcode = '', // ä¸è‰¯åŽŸå› ç¼–ç 
      this.dialogForm.inuser = getCookie('navTabId') // æ”¶æ–™äººå‘˜  é»˜è®¤ç™»å½•人员
      this.dialogForm.sqty = '' // æ”¶æ–™æ•°é‡
      this.dialogForm.ngqty = '' // ä¸è‰¯æ•°é‡
      this.dialogForm.badcode = '' // ä¸è‰¯åŽŸå› ç¼–ç 
      this.dialogForm.noputqty = '', // ä¸è‰¯æ•°é‡
      this.dialogForm.noputqty = '' // ä¸è‰¯æ•°é‡
      this.dialogForm.eqpcode = '', // ç”Ÿäº§è®¾å¤‡ç¼–码
      this.dialogForm.eqpcode = '' // ç”Ÿäº§è®¾å¤‡ç¼–码
      this.dialogForm.usergroupcode = '', // ç­ç»„编码
      this.dialogForm.reportuser = '', // æŠ¥å·¥äººå‘˜
      this.dialogForm.usergroupcode = '' // ç­ç»„编码
      this.dialogForm.reportuser = '' // æŠ¥å·¥äººå‘˜
      this.dialogForm.startqtySum = '' // ä¸èƒ½è¶…过的数值
@@ -2183,6 +2220,9 @@
      this.dialogForm.remarks = '' // å¤‡æ³¨
      this.dialogForm.operation = getCookie('navTabId') // æŠ¥å·¥äººï¼ˆæ”¶æ–™äººï¼‰
      this.userTableData = [] // äººå‘˜åˆ—表
      this.form.SelectType = ''
      this.ZZeqpArr = []
      this.$refs.dialogForm.clearValidate()
    },
@@ -2239,18 +2279,18 @@
            this.dialogForm.inbarcode = ''
            // å½“为末道的时候
            if (this.dialogForm.nextstepcode === '') {
              const D = {
                rightcode: '1078',
                partcode: this.dialogForm.partcode,
                qty: this.dialogForm.sqty,
                onelabqty: this.dialogForm.sqty
              }
              const r = await LabelBarCode(D)
              this.dialogForm.inbarcode = r.data[0].labcode
              this.qrForm.partspec = this.dialogForm.partspec
            }
            // if (this.dialogForm.nextstepcode === '') {
            //   const D = {
            //     rightcode: '1078',
            //     partcode: this.dialogForm.partcode,
            //     qty: this.dialogForm.sqty,
            //     onelabqty: this.dialogForm.sqty
            //   }
            //   const r = await LabelBarCode(D)
            //   this.dialogForm.inbarcode = r.data[0].labcode
            //
            //   this.qrForm.partspec = this.dialogForm.partspec
            // }
            const data = {
              mesordercode: this.dialogForm.wo_code, // å·¥å•编号
@@ -2289,7 +2329,7 @@
              partcode: this.dialogForm.partcode, // äº§å“ç¼–码
              stepseq: this.dialogForm.stepseq, // å·¥åºåºå·   æš‚时缺
              stepcode: this.dialogForm.stepcode, // å·¥åºç¼–码
              eqpcode: this.dialogForm.eqpcode, // ç”Ÿäº§è®¾å¤‡
              eqpcode: this.form.SelectType, // ç”Ÿäº§è®¾å¤‡
              taskqty: this.dialogForm.planqty, // ä»»åŠ¡æ•°é‡
              startqty: this.dialogForm.startqty// å¼€å§‹æ•°é‡
            }
src/views/produceManager/workOrder.vue
@@ -43,7 +43,10 @@
            <el-form-item label="源单单号" style="display: flex;">
              <el-input v-model="form.sourceorder" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item label="单据类型" style=" display: flex;">
            <el-form-item label="销售订单" style="display: flex;">
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="单据类型" style=" display: flex;">
              <el-select
                v-model="form.ordertype"
                :popper-append-to-body="false"
@@ -193,6 +196,18 @@
          >
            <template slot-scope="{row}">
              <div v-if="row.m_po">{{ row.m_po }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="saleOrderCode"
            label="销售订单"
            sortable="custom"
            show-tooltip-when-overflow
            min-width="160"
          >
            <template slot-scope="{row}">
              <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
@@ -647,78 +662,68 @@
            />
          </el-select>
        </el-form-item>
        <!--        <el-button-->
        <!--          v-waves-->
        <!--          type="primary"-->
        <!--          style="padding: 0 10px;margin-left: -8px;margin-top:3px"-->
        <!--          class="el-icon-search"-->
        <!--          @click="searchClick"-->
        <!--        />-->
        <!--            :disabled="dialogForm.routecode===''"-->
        <!--          </div>-->
        <!--        </div>-->
        <el-form-item label="是否排程" prop="isAps">
          <el-radio-group v-model="dialogForm.isAps" style="width:200px" @change="changeIsAps">
            <el-radio key="Y" label="Y" value="Y">是</el-radio>
            <el-radio key="N" label="N" value="N">否</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="物料清单" :prop="dialogForm.isAps==='Y'?'bomId':''">
          <el-select
            v-model="dialogForm.bomId"
            filterable
            :disabled="dialogForm.isAps==='N'"
            :popper-append-to-body="false"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in bomIdArr"
              :key="item.id"
              :label="item.version"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="计划开始时间" prop="planstartdate">
          <el-date-picker
            v-model="dialogForm.planstartdate"
            type="date"
            :clearable="false"
            value-format="yyyy-MM-dd"
            :picker-options="pickerOptions"
            style="width: 200px"
            placeholder="选择日期"
          />
        </el-form-item>
        <el-form-item label="计划完成时间" prop="planenddate">
          <el-date-picker
            v-model="dialogForm.planenddate"
            type="date"
            :clearable="false"
            value-format="yyyy-MM-dd"
            style="width: 200px"
            placeholder="选择日期"
            :picker-options="pickerOptions"
          />
        </el-form-item>
        <el-form-item label="工单等级" prop="orderlev">
          <el-select
            v-model="dialogForm.orderlev"
            filterable
            :popper-append-to-body="false"
            style="width: 200px"
            placeholder="请选择"
          >
            <el-option
              v-for="item in orderlevArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        </el-form-item>
        <!--        <el-form-item label="是否排程" prop="isAps">-->
        <!--          <el-radio-group v-model="dialogForm.isAps" style="width:200px" @change="changeIsAps">-->
        <!--            <el-radio key="Y" label="Y" value="Y">是</el-radio>-->
        <!--            <el-radio key="N" label="N" value="N">否</el-radio>-->
        <!--          </el-radio-group>-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="物料清单" :prop="dialogForm.isAps==='Y'?'bomId':''">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.bomId"-->
        <!--            filterable-->
        <!--            :disabled="dialogForm.isAps==='N'"-->
        <!--            :popper-append-to-body="false"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in bomIdArr"-->
        <!--              :key="item.id"-->
        <!--              :label="item.version"-->
        <!--              :value="item.id"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="计划开始时间" prop="planstartdate">-->
        <!--          <el-date-picker-->
        <!--            v-model="dialogForm.planstartdate"-->
        <!--            type="date"-->
        <!--            :clearable="false"-->
        <!--            value-format="yyyy-MM-dd"-->
        <!--            :picker-options="pickerOptions"-->
        <!--            style="width: 200px"-->
        <!--            placeholder="选择日期"-->
        <!--          />-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="计划完成时间" prop="planenddate">-->
        <!--          <el-date-picker-->
        <!--            v-model="dialogForm.planenddate"-->
        <!--            type="date"-->
        <!--            :clearable="false"-->
        <!--            value-format="yyyy-MM-dd"-->
        <!--            style="width: 200px"-->
        <!--            placeholder="选择日期"-->
        <!--            :picker-options="pickerOptions"-->
        <!--          />-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="工单等级" prop="orderlev">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.orderlev"-->
        <!--            filterable-->
        <!--            :popper-append-to-body="false"-->
        <!--            style="width: 200px"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in orderlevArr"-->
        <!--              :key="item.code"-->
        <!--              :label="item.name"-->
        <!--              :value="item.code"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
      </el-form>
@@ -2022,6 +2027,7 @@
        partcode: '', // äº§å“ç¼–码
        ordertype: '', // ordertype
        sourceorder: '', // æºå•单号
        saleordercode: '', // é”€å”®è®¢å•
        partname: '', // äº§å“åç§°
        partspec: '', // äº§å“è§„æ ¼
        creatuser: '', // åˆ›å»ºäººå‘˜
@@ -2280,6 +2286,7 @@
        partspec: this.form.partspec, // äº§å“è§„æ ¼
        creatuser: this.form.creatuser, // åˆ›å»ºäººå‘˜
        sourceorder: this.form.sourceorder, // æºå•单号
        saleordercode: this.form.saleordercode, // é”€å”®è®¢å•
        ordertype: this.form.ordertype, // å•据类型
        createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // åˆ›å»ºæ—¶é—´
        prop: this.form.prop, // æŽ’序字段
src/views/qualityManager/qualityPlaning.vue
@@ -317,8 +317,8 @@
        <br>
        <el-form-item prop="checktype" label="质检类型">
          <el-radio-group v-model="dialogForm.checktype">
            <el-radio label="InCheck">入厂检验</el-radio>
            <el-radio label="OutCheck">出厂检验</el-radio>
            <!--            <el-radio label="InCheck">入厂检验</el-radio>-->
            <!--            <el-radio label="OutCheck">出厂检验</el-radio>-->
            <el-radio label="FirstCheck">首检检验</el-radio>
            <el-radio label="PatroCheck">巡检</el-radio>
            <el-radio label="EndCheck">完工检</el-radio>