永康嘉持电器有限公司前端
小小儁爺
2024-12-25 c6da28cde9dc469ee1e2d4dba4b7234307d9bd5a
1.根据客户需求修改  看板内容、新增字段
已修改12个文件
802 ■■■■ 文件已修改
src/api/kanbanManager.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/myEcharts.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/personList.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/kanbanManager/cj.vue 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/kanbanManager/ckgl.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/materialManager/inventoryList.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/produce/stepReport.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/dataImport.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/produceOrderList.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderClose.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderList.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderSend.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/kanbanManager.js
@@ -1,5 +1,33 @@
import request from '@/utils/request'
export function ProductionStockedInRightBottom() {
  return request({
    url: 'KanBanManagerent/ProductionStockedInRightBottom',
    method: 'get'
  })
}
export function ProcureOutsourcRightTop() {
  return request({
    url: 'KanBanManagerent/ProcureOutsourcRightTop',
    method: 'get'
  })
}
export function ProductConsignmentLeftBottom() {
  return request({
    url: 'KanBanManagerent/ProductConsignmentLeftBottom',
    method: 'get'
  })
}
export function ProcureOutsourcLeftTop() {
  return request({
    url: 'KanBanManagerent/ProcureOutsourcLeftTop',
    method: 'get'
  })
}
// 车间看板,上生产信息
export function WorkShopProduceTopData(data) {
  return request({
src/utils/myEcharts.js
@@ -356,13 +356,13 @@
// 综合看板图
export function bar02(dataArr, titlenameArr) {
  // const data = [700, 600, 50, 40, 30]
  // const titlename = ['500ml提手盖咖啡杯 蓝色 喷塑', '500ml提手盖咖啡杯 蓝色 喷塑', '尺寸', '颜色', '大小']
  // const data = [70, 60, 50, 40, 30]
  // const titlename = ['外观划伤', '表面油污', '尺寸', '颜色', '大小']
  // const data = val.map(i => i.cont)
  // const titlename = val.map(i => i.name)
  const data = dataArr.filter((item, index) => index < 5)
  const data = dataArr.filter((item, index) => index < 10)
  const titlename = titlenameArr.filter((item, index) => index < 5)
  const titlename = titlenameArr.filter((item, index) => index < 10)
  const length = titlename.length
  if (titlename.length < 5) {
@@ -371,13 +371,14 @@
    }
  }
  console.log(titlename, 123)
  // const valdata = [683, 500, 400, 300, 200]
  const valdata = [683, 500, 400, 300, 200]
  // const myColor = ['#FF0000', '#FF5511', '#FF8800', '#FFBB00', '#FFFF00']
  // const myColor = ['#0000FF']
  // const myColor = ['#7af5f5', '#00FFFF', '#00FFFF', '#00FFFF', '#00FFFF']
  const myColor = ['rgba(122,245,245,1)', 'rgba(122,245,245,0.95)', 'rgba(122,245,245,0.9)', 'rgba(122,245,245,0.85)', 'rgba(122,245,245,0.8)']
  const myColor = [
    'rgba(122,245,245,1)', 'rgba(122,245,245,0.95)', 'rgba(122,245,245,0.9)', 'rgba(122,245,245,0.85)', 'rgba(122,245,245,0.8)',
    'rgba(122,245,245,0.75)', 'rgba(122,245,245,0.7)', 'rgba(122,245,245,0.65)', 'rgba(122,245,245,0.6)', 'rgba(122,245,245,0.55)'
  ]
  const option = {
    animation: false,
    backgroundColor: 'transparent',
@@ -423,16 +424,11 @@
          show: false
        },
        axisLabel: {
          show: false,
          // color: '#fff',
          color: function(value, index) {
            return value === '0' ? 'transparent' : '#fff'
          },
          verticalAlign: 'bottom',
          // align: 'left',
          // margin: 80,
          fontSize: 20,
          // formatter: function(value, index) {
          //   return [
          //     '{lg|' + (index + 1) + '、   }' + '{title|' + value + '} '
@@ -462,12 +458,12 @@
        }
      },
      {
        show: true,
        show: false,
        inverse: true,
        data: data,
        data: valdata,
        axisLabel: {
          textStyle: {
            fontSize: 20,
            fontSize: 12,
            color: '#fff'
          }
        },
@@ -502,24 +498,13 @@
        },
        label: {
          normal: {
            color: '#fff',
            show: true,
            position: [0, '-20px'],
            textStyle: {
              fontSize: 16
            },
            formatter: function(a, b) {
              return a.name
            position: 'right',
            formatter: '{c}',
            fontSize: 20,
            color: '#fff'
            // formatter: '{c}%',
            }
          }
          // normal: {
          //   show: true,
          //   position: 'right',
          //   formatter: '{c}',
          //   fontSize: 20,
          //   color: '#fff'
          //   // formatter: '{c}%',
          // }
        }
      }
    ]
src/views/basicSettings/personList.vue
@@ -3,7 +3,7 @@
    <div class="body" :style="{height:mainHeight+'px'}">
      <div style="display: flex">
        <!--        background:rgba(248,248,250,1);-->
        <div style="width: 300px;margin: 10px 10px 0  0;background: #fff">
        <div style="width: 220px;margin: 10px 10px 0  0;background: #fff">
          <div style="margin: 20px 10px 0 10px;display: flex;justify-content: space-between;">
            <div style="display: flex;">
@@ -36,7 +36,7 @@
        </div>
        <div style="width: calc(100% - 300px)">
        <div style="width: calc(100% - 220px)">
          <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 type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=3')">导入</el-button>
@@ -128,17 +128,20 @@
                prop="usercode"
                label="用户编码"
                sortable="custom"
                min-width="105"
                show-overflow-tooltip
              />
              <el-table-column
                prop="username"
                label="用户名称"
                min-width="105"
                sortable="custom"
                show-overflow-tooltip
              />
              <el-table-column
                prop="storg_name"
                label="所属组织"
                min-width="105"
                show-overflow-tooltip
                sortable="custom"
              >
@@ -149,6 +152,7 @@
              </el-table-column>
              <el-table-column
                prop="status"
                min-width="105"
                label="状态"
                show-overflow-tooltip
                sortable="custom"
@@ -158,9 +162,23 @@
                  <el-tag v-if="row.status==='N'" size="small" type="danger">离职</el-tag>
                </template>
              </el-table-column>
              <el-table-column
                prop="payrate"
                min-width="105"
                label="薪资类型"
                show-overflow-tooltip
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.payrate ? PayRateArr.find(i=>i.code === row.payrate).name : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="email"
                label="邮箱"
                min-width="105"
                sortable="custom"
                show-overflow-tooltip
              >
@@ -171,6 +189,7 @@
              <el-table-column
                prop="mobile"
                label="号码"
                min-width="105"
                sortable="custom"
                show-overflow-tooltip
              >
@@ -182,6 +201,7 @@
                prop="postname"
                label="岗位"
                sortable="custom"
                min-width="105"
                show-overflow-tooltip
              >
                <template slot-scope="{row}">
@@ -192,6 +212,7 @@
                prop="rolename"
                label="角色"
                sortable="custom"
                min-width="105"
                show-overflow-tooltip
              >
                <template slot-scope="{row}">
@@ -201,6 +222,7 @@
              <el-table-column
                prop="group_name"
                label="班组"
                min-width="105"
                sortable="custom"
                show-overflow-tooltip
              >
@@ -212,6 +234,7 @@
                prop="createusername"
                label="创建人员"
                sortable="custom"
                min-width="105"
              />
              <el-table-column
                prop="lm_date"
@@ -221,7 +244,7 @@
              />
              <el-table-column
                label="操作"
                width="120"
                width="80"
                fixed="right"
              >
                <template slot-scope="{row}">
@@ -308,6 +331,22 @@
            <el-radio label="Y">在职</el-radio>
            <el-radio label="N">离职</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item prop="payrate" label="薪资类型">
          <el-select
            v-model="dialogForm.payrate"
            style="width:200px"
            placeholder="请选择"
            :popper-append-to-body="false"
          >
            <el-option
              v-for="item in PayRateArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        </el-form-item>
        <el-form-item prop="post_code" label="岗位">
@@ -462,7 +501,8 @@
        storg_code: '', // 所属组织
        mobile: '', // 号码
        email: '', // 邮箱
        status: 'Y'// 状态
        status: 'Y', // 状态
        payrate: ''// 薪资类型
      },
      operation: '',
      dialogFormRules: {
@@ -483,6 +523,9 @@
        ],
        storg_code: [
          { required: true, message: '请选择所属组织', trigger: ['blur', 'change'] }
        ],
        payrate: [
          { required: true, message: '请选择薪资类型', trigger: ['blur', 'change'] }
        ]
      },
      defaultProps: {
@@ -497,6 +540,11 @@
      postArr: [],
      roleArr: [],
      groupArr: [],
      PayRateArr: [
        { code: 'S', name: '计件' },
        { code: 'T', name: '计时' },
        { code: 'M', name: '按月' }
      ],
      defaultPropsLeft: {
        children: 'children',
@@ -506,7 +554,11 @@
    }
  },
  activated() {   window.addEventListener('resize', this.getHeight)   this.getHeight() }, created() {
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
    this.getUserData()
  },
  mounted() {
@@ -594,6 +646,7 @@
        this.dialogForm.mobile = row.mobile
        this.dialogForm.email = row.email
        this.dialogForm.status = row.status
        this.dialogForm.payrate = row.payrate
        this.dialogForm.storg_code = this.findParent([], row.storg_code, this.cascaderOptions).reverse()
        this.dialogForm.post_code = row.post_code ? row.post_code.split(',') : []
@@ -669,6 +722,7 @@
      this.dialogForm.password = '123456'
      this.dialogForm.mobile = ''
      this.dialogForm.email = ''
      this.dialogForm.payrate = ''
      // this.dialogForm.storg_code = ''
src/views/kanbanManager/cj.vue
@@ -29,7 +29,7 @@
            </div>
            <div
              class="lineContent horn"
              style="height: 870px;display: flex;flex-direction: column;justify-content: space-between"
              style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
            >
              <el-table
                ref="tableDataLeftCenterRef"
@@ -38,88 +38,77 @@
                style="width: 100%;"
                :header-cell-style="headerCellStyle"
                :cell-style="cellStyle"
                height="920"
                height="500"
              >
                <el-table-column
                  prop="wo_code"
                  label="工单号"
                  width="270"
                  width="220"
                />
                <!--                <el-table-column-->
                <!--                  prop="saleOrderCode"-->
                <!--                  label="生产单号"-->
                <!--                  width="160"-->
                <!--                />-->
                <el-table-column
                  prop="wkshp_name"
                  label="生产车间"
                  width="210"
                />
                <!--                600-->
                <el-table-column
                  prop="partcode"
                  label="产品编码"
                  width="210"
                  width="160"
                />
                <el-table-column
                  prop="partname"
                  label="产品名称"
                  width="210"
                  width="160"
                />
                <!--                <el-table-column-->
                <!--                  prop="partspec"-->
                <!--                  label="产品规格"-->
                <!--                  width="160"-->
                <!--                >-->
                <!--                  <template slot-scope="{row}">-->
                <!--                    {{ row.partspec ? row.partspec : '/' }}-->
                <!--                  </template>-->
                <!--                </el-table-column>-->
                <el-table-column
                  prop="partspec"
                  label="产品规格"
                  width="160"
                >
                  <template slot-scope="{row}">
                    {{ row.partspec ? row.partspec : '/' }}
                  </template>
                </el-table-column>
                <el-table-column
                  prop="plan_qty"
                  label="任务数量"
                  width="170"
                  width="120"
                />
                <el-table-column
                  prop="good_qty"
                  label="合格数量"
                  width="170"
                  width="120"
                />
                <!--                <el-table-column-->
                <!--                  prop="ng_qty"-->
                <!--                  label="不良数量"-->
                <!--                  width="120"-->
                <!--                />-->
                <!--                <el-table-column-->
                <!--                  prop="laborbad_qty"-->
                <!--                  label="工废数量"-->
                <!--                  width="120"-->
                <!--                />-->
                <!--                <el-table-column-->
                <!--                  prop="materielbad_qty"-->
                <!--                  label="料废数量"-->
                <!--                  width="120"-->
                <!--                />-->
                <!--                <el-table-column-->
                <!--                  prop="seq"-->
                <!--                  label="工序顺序"-->
                <!--                  width="120"-->
                <!--                />-->
                <!--                <el-table-column-->
                <!--                  prop="step_code"-->
                <!--                  label="工序编码"-->
                <!--                  width="120"-->
                <!--                />-->
                <el-table-column
                  prop="ng_qty"
                  label="不良数量"
                  width="120"
                />
                <el-table-column
                  prop="laborbad_qty"
                  label="工废数量"
                  width="120"
                />
                <el-table-column
                  prop="materielbad_qty"
                  label="料废数量"
                  width="120"
                />
                <el-table-column
                  prop="seq"
                  label="工序顺序"
                  width="120"
                />
                <el-table-column
                  prop="step_code"
                  label="工序编码"
                  width="120"
                />
                <el-table-column
                  prop="step_name"
                  label="工序名称"
                  width="320"
                  width="120"
                />
                <el-table-column
                  prop="schedule"
                  label="完成进度(%)"
                  width="313"
                  width="213"
                />
              </el-table>
            </div>
@@ -127,27 +116,27 @@
        </div>
        <!--        下边-->
        <!--        <div style="display: flex;justify-content: space-between;margin-top: 15px;">-->
        <!--          <div style="width: 1000px;">-->
        <!--            <div class="smallTitle">-->
        <!--              <svg-icon icon-class="blcs" class="svg_class" />-->
        <!--              质量不良(近一周)-->
        <!--            </div>-->
        <!--            <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">-->
        <!--              <div id="cjzl03" class="flex_c_c" style="width: 100%;height:100%" />-->
        <div style="display: flex;justify-content: space-between;margin-top: 15px;">
          <div style="width: 1000px;">
            <div class="smallTitle">
              <svg-icon icon-class="blcs" class="svg_class" />
              质量不良(近一周)
            </div>
            <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
              <div id="cjzl03" class="flex_c_c" style="width: 100%;height:100%" />
        <!--            </div>-->
        <!--          </div>-->
        <!--          <div style="width: 850px;">-->
        <!--            <div class="smallTitle">-->
        <!--              <svg-icon icon-class="ckkc" class="svg_class" />-->
        <!--              不良统计(近一月)-->
        <!--            </div>-->
        <!--            <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">-->
        <!--              <div id="cjzl04" class="flex_c_c" style="width: 100%;height:100%" />-->
        <!--            </div>-->
        <!--          </div>-->
        <!--        </div>-->
            </div>
          </div>
          <div style="width: 850px;">
            <div class="smallTitle">
              <svg-icon icon-class="ckkc" class="svg_class" />
              不良统计(近一月)
            </div>
            <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
              <div id="cjzl04" class="flex_c_c" style="width: 100%;height:100%" />
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
@@ -188,10 +177,6 @@
    }
  },
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
    setInterval(this.getNowTime, 1000)
@@ -201,13 +186,11 @@
    }, 1000 * 60 * 120)
  },
  mounted() {
    // this.getAllApi()
    this.getWorkShopProduceTopData()
    this.getAllApi()
  },
  methods: {
    async getWorkShopProduceTopData() {
      // WorkShopProduceTopData({ wkshopcode: this.wkshopcode.join(',') }).then(res => {
      WorkShopProduceTopData({ wkshopcode: '101,102' }).then(res => {
      WorkShopProduceTopData({ wkshopcode: this.wkshopcode.join(',') }).then(res => {
        this.tableDataCenterTop = res.data
        const divData = this.$refs.tableDataLeftCenterRef.bodyWrapper
@@ -225,7 +208,7 @@
              }
            })
          }
        }, this.tableDataCenterTop.length <= 22 ? 1000 * 30 : 200)
        }, this.tableDataCenterTop.length <= 11 ? 1000 * 15 : 200)
      })
    },
@@ -268,14 +251,14 @@
        })
      }, 1000 * 50)
      const res5 = await WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode[0] })
      const res5 = await WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode.join(',') })
      this.RightBottom = res5.data
      if (this.RightBottom.length > 0) {
        loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
      }
      setInterval(() => {
        WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode[0] }).then(res5 => {
        WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode.join(',') }).then(res5 => {
          this.RightBottom = res5.data
          if (this.RightBottom.length > 0) {
            loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
@@ -283,7 +266,7 @@
        })
      }, 1000 * 60)
      await this.getWorkShopProduceTopData()
      this.getWorkShopProduceTopData()
    },
    // 获取当前时间
@@ -363,10 +346,6 @@
::v-deep .el-table tr,
::v-deep .el-table td {
  background-color: transparent;
}
::v-deep .gutter {
  display: none;
}
.all_block01 {
src/views/kanbanManager/ckgl.vue
@@ -258,7 +258,7 @@
          <div style="height: 470px;">
            <div class="smallTitle">
              <svg-icon icon-class="ph" class="svg_class" />
              半成品、产品库存量排行Top5
              近一周采购待入库物料排行Top5
            </div>
            <div class="lineContent horn" style="height: 410px">
              <div id="bar03" style="width: 100%;height:100%; " />
@@ -268,7 +268,7 @@
          <div style="height: 470px;margin-top: 30px;">
            <div class="smallTitle">
              <svg-icon icon-class="ph" class="svg_class" />
              原材料库存量排行Top5
              近一周销售已发货产品排行Top5
            </div>
            <div class="lineContent horn" style="height: 410px">
              <div id="bar04" style="width: 100%;height:100%;" />
@@ -286,10 +286,10 @@
import './kbCommon.css'
import { bar02, kbTop, loadEcharts } from '@/utils/myEcharts'
import {
  WareHouseTopLeftData,
  WareHouseTopBottomData,
  WareHouseRightTopData,
  WareHouseRightBottomData
  ProcureOutsourcLeftTop,
  ProductConsignmentLeftBottom,
  ProcureOutsourcRightTop,
  ProductionStockedInRightBottom
} from '@/api/kanbanManager'
export default {
@@ -335,8 +335,8 @@
    window.addEventListener('offline', this.updateOnlineStatus)
    this.updateOnlineStatus({ type: this.onLine ? 'online' : 'offline', isFirst: true })
    this.getWareHouseTopLeftData()
    this.getWareHouseTopBottomData()
    this.getProcureOutsourcLeftTop()
    this.getProductConsignmentLeftBottom()
    this.getEcharts()
  },
  beforeDestroy() {
@@ -367,8 +367,8 @@
      }
    },
    // 获取左上table数据
    getWareHouseTopLeftData() {
      WareHouseTopLeftData().then(res => {
    getProcureOutsourcLeftTop() {
      ProcureOutsourcLeftTop().then(res => {
        this.tableDataTop = res.data
        // this.number1 = this.tableDataTop.length
        const divData = this.$refs.tableDataTopRef.bodyWrapper
@@ -381,12 +381,12 @@
          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
            // 重置table距离顶部距离
            divData.scrollTop = 0
            WareHouseTopLeftData().then(res => {
            ProcureOutsourcLeftTop().then(res => {
              this.tableDataTop = res.data
              // this.number1 = this.tableDataTop.length
              if (this.tableDataTop.length > 10) {
                clearInterval(this.tableTopTask)
                this.getWareHouseTopLeftData()
                this.getProcureOutsourcLeftTop()
              }
            })
          }
@@ -394,8 +394,8 @@
      })
    },
    // 获取左下table数据
    getWareHouseTopBottomData() {
      WareHouseTopBottomData().then(res => {
    getProductConsignmentLeftBottom() {
      ProductConsignmentLeftBottom().then(res => {
        this.tableDataBottom = res.data
        this.number2 = this.tableDataBottom.length
        const divData = this.$refs.tableDataBottomRef.bodyWrapper
@@ -409,12 +409,12 @@
          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
            // 重置table距离顶部距离
            divData.scrollTop = 0
            WareHouseTopBottomData().then(res => {
            ProductConsignmentLeftBottom().then(res => {
              this.tableDataBottom = res.data
              this.number2 = this.tableDataBottom.length
              if (this.tableDataBottom.length > 10) {
                clearInterval(this.tableBottomTask)
                this.getWareHouseTopBottomData()
                this.getProductConsignmentLeftBottom()
              }
            })
          }
@@ -424,23 +424,23 @@
    // 获取echarts
    getEcharts() {
      WareHouseRightTopData().then(res => {
        loadEcharts('bar03', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
      ProcureOutsourcRightTop().then(res => {
        loadEcharts('bar03', bar02(res.data.filter(i => i.qty > 0).map(i => i.qty), res.data.filter(i => i.qty > 0).map(i => i.materiel_name)))
      })
      WareHouseRightBottomData().then(res => {
        loadEcharts('bar04', bar02(res.dat.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
      ProductionStockedInRightBottom().then(res => {
        loadEcharts('bar04', bar02(res.data.filter(i => i.qty > 0).map(i => i.qty), res.data.filter(i => i.qty > 0).map(i => i.materiel_name)))
      })
      this.echartsRightTop = setInterval(() => {
        WareHouseRightTopData().then(res => {
          loadEcharts('bar03', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
        ProcureOutsourcRightTop().then(res => {
          loadEcharts('bar03', bar02(res.data.filter(i => i.qty > 0).map(i => i.qty), res.data.filter(i => i.qty > 0).map(i => i.materiel_name)))
        })
      }, 1000 * 15)
      this.echartsRightBottom = setInterval(() => {
        WareHouseRightBottomData().then(res => {
          loadEcharts('bar04', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
        ProductionStockedInRightBottom().then(res => {
          loadEcharts('bar04', bar02(res.data.filter(i => i.qty > 0).map(i => i.qty), res.data.filter(i => i.qty > 0).map(i => i.materiel_name)))
        })
      }, 1000 * 15)
    },
src/views/materialManager/inventoryList.vue
@@ -190,6 +190,68 @@
                  {{ row.partspec ? row.partspec : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc1"
                label="客户名称"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc6"
                label="客户编码"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc2"
                label="对内名称"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc3"
                label="CTP日期"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc4"
                label="钢刀编号"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc5"
                label="盒型"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="idinventoryclassname"
                label="所属类别"
@@ -1019,7 +1081,11 @@
    }
  },
  activated() {   window.addEventListener('resize', this.getHeight)   this.getHeight() }, created() {
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
  },
  mounted() {
src/views/produce/stepReport.vue
@@ -288,7 +288,66 @@
                show-tooltip-when-overflow
                sortable="custom"
              />
              <el-table-column
                prop="priuserdefnvc1"
                label="客户名称"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc6"
                label="客户编码"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc2"
                label="对内名称"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc3"
                label="CTP日期"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc4"
                label="钢刀编号"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="priuserdefnvc5"
                label="盒型"
                width="110"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}
                </template>
              </el-table-column>
              <el-table-column
                label="操作"
                width="120"
@@ -1053,7 +1112,11 @@
      xx: ''
    }
  },
  activated() {   window.addEventListener('resize', this.getHeight)   this.getHeight() }, created() {
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
  },
  mounted() {
@@ -1366,6 +1429,7 @@
                badqty: i.badqty
              })
            })
            const data = {
              mesordercode: this.dialogForm.wo_code,
              partcode: this.dialogForm.partnumber,
@@ -1378,6 +1442,8 @@
              usergroupcode: this.dialogForm.usergroupcode,
              reportuser: this.dialogForm.reportuser.join(','),
              taskqty: this.dialogForm.planqty,
              payrate: this.dialogForm.reckway === 'person' ? this.reportuserArr.find(i => i.usercode === this.dialogForm.reportuser[0]).payrate : '',
              // startqty: this.dialogForm.startqty,
              // reportqty: this.dialogForm.reportqty,
src/views/systemSetting/dataImport.vue
@@ -116,6 +116,7 @@
                  v-if="item.indexOf('编号(唯一)')!==-1||
                    item.indexOf('用户姓名')!==-1||
                    item.indexOf('密码')!==-1||
                    item.indexOf('薪资类型')!==-1||
                    item.indexOf('手机号')!==-1||
                    item.indexOf('邮箱')!==-1||
                    item.indexOf('名称')!==-1||
@@ -957,6 +958,10 @@
        if (!j['*密码']) {
          flag = false
          msg = '*密码'
        }
        if (!j['*薪资类型']) {
          flag = false
          msg = '*薪资类型'
        }
        if (!j['*在职状态']) {
          flag = false
@@ -1846,6 +1851,7 @@
          '*用户编号(唯一)': '',
          '*用户姓名': '',
          '*密码': '',
          '*薪资类型': '',
          '*在职状态': 'Y',
          '手机号': '',
          '邮箱': '',
src/views/workOrder/produceOrderList.vue
@@ -276,6 +276,66 @@
            sortable="custom"
          />
          <el-table-column
            prop="priuserdefnvc1"
            label="客户名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc6"
            label="客户编码"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc2"
            label="对内名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc3"
            label="CTP日期"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc4"
            label="钢刀编号"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc5"
            label="盒型"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="clerkuser"
            label="销售业务员"
            show-tooltip-when-overflow
@@ -699,7 +759,11 @@
    }
  },
  activated() {   window.addEventListener('resize', this.getHeight)   this.getHeight() }, created() {
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
    this.getErpOrderSearch()
    // this.getPartSelect()// 获取产品编码信息
src/views/workOrder/workOrderClose.vue
@@ -259,6 +259,66 @@
            width="100"
          />
          <el-table-column
            prop="priuserdefnvc1"
            label="客户名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc6"
            label="客户编码"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc2"
            label="对内名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc3"
            label="CTP日期"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc4"
            label="钢刀编号"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc5"
            label="盒型"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="wkshp_name"
            label="生产车间"
            show-tooltip-when-overflow
@@ -2257,7 +2317,11 @@
      }
    }
  },
  activated() {   window.addEventListener('resize', this.getHeight)   this.getHeight() }, created() {
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
    this.handleRequest()
  },
  mounted() {
src/views/workOrder/workOrderList.vue
@@ -268,6 +268,66 @@
            width="100"
          />
          <el-table-column
            prop="priuserdefnvc1"
            label="客户名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc6"
            label="客户编码"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc2"
            label="对内名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc3"
            label="CTP日期"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc4"
            label="钢刀编号"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc5"
            label="盒型"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="clerkuser"
            label="销售业务员"
            sortable="custom"
@@ -385,7 +445,7 @@
                    :style="{color:$store.state.settings.theme}"
                    class="el-icon-printer"
                    style="cursor: pointer;margin-right: 15px"
                    @click="handlePrint(row.wo_code,row.saleOrderCod)"
                    @click="handlePrint(row.wo_code,row.saleOrderCod,row)"
                  />
                </el-tooltip>
@@ -1373,6 +1433,26 @@
                  <el-form-item label="工单数量:" class="formContent">
                    {{ formApprove.plan_qty }}
                  </el-form-item>
                  <el-form-item label="客户名称:" class="formContent">
                    {{ formApprove.priuserdefnvc1 }}
                  </el-form-item>
                  <el-form-item label="客户编码:" class="formContent">
                    {{ formApprove.priuserdefnvc6 }}
                  </el-form-item>
                  <el-form-item label="对内名称:" class="formContent">
                    {{ formApprove.priuserdefnvc2 }}
                  </el-form-item>
                  <el-form-item label="CTP日期:" class="formContent">
                    {{ formApprove.priuserdefnvc3 }}
                  </el-form-item>
                  <el-form-item label="钢刀编号:" class="formContent">
                    {{ formApprove.priuserdefnvc4 }}
                  </el-form-item>
                  <el-form-item label="盒型:" class="formContent">
                    {{ formApprove.priuserdefnvc5 }}
                  </el-form-item>
                  <!--                <el-form-item label="工艺路线:" class="formContent">-->
                  <!--                  {{ formApprove.routename }}-->
                  <!--                </el-form-item>-->
@@ -2439,7 +2519,13 @@
        partspec: '',
        plan_qty: '',
        routename: '',
        lm_date: ''
        lm_date: '',
        priuserdefnvc1: '',
        priuserdefnvc2: '',
        priuserdefnvc3: '',
        priuserdefnvc4: '',
        priuserdefnvc5: '',
        priuserdefnvc6: ''
      },
      number: '',
      dialogVisible2: false,
@@ -2583,7 +2669,11 @@
      }
    }
  },
  activated() {   window.addEventListener('resize', this.getHeight)   this.getHeight() }, created() {
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
    this.handleRequest()
  },
  mounted() {
@@ -3204,10 +3294,18 @@
      this.dialogVisibleSearch = false
    },
    // 处理打印
    handlePrint(wo_code, saleOrderCode) {
    handlePrint(wo_code, saleOrderCode, row) {
      // const number = Math.random() * Math.random()
      // this.number = number === 0 ? (10 + Math.random()) : number
      // console.log(number)
      this.formApprove.priuserdefnvc1 = row.priuserdefnvc1 ? row.priuserdefnvc1 : '/'
      this.formApprove.priuserdefnvc2 = row.priuserdefnvc2 ? row.priuserdefnvc2 : '/'
      this.formApprove.priuserdefnvc3 = row.priuserdefnvc3 ? row.priuserdefnvc3 : '/'
      this.formApprove.priuserdefnvc4 = row.priuserdefnvc4 ? row.priuserdefnvc4 : '/'
      this.formApprove.priuserdefnvc5 = row.priuserdefnvc5 ? row.priuserdefnvc5 : '/'
      this.formApprove.priuserdefnvc6 = row.priuserdefnvc6 ? row.priuserdefnvc6 : '/'
      this.formApprove.saleOrderCode = this.formApprove.saleOrderCode !== '' ? this.formApprove.saleOrderCode : saleOrderCode
      const data2 = {
        mesordercode: wo_code || this.dialogForm.mesordercode
@@ -3319,6 +3417,12 @@
      this.formApprove.routename = ''
      this.formApprove.lm_date = ''
      this.formApprove.priuserdefnvc1 = ''
      this.formApprove.priuserdefnvc2 = ''
      this.formApprove.priuserdefnvc3 = ''
      this.formApprove.priuserdefnvc4 = ''
      this.formApprove.priuserdefnvc5 = ''
      this.formApprove.priuserdefnvc6 = ''
      // this.$refs.qrCodeDiv0.title = ''
      this.tableDataPrint = []
src/views/workOrder/workOrderSend.vue
@@ -266,6 +266,66 @@
            width="100"
          />
          <el-table-column
            prop="priuserdefnvc1"
            label="客户名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc6"
            label="客户编码"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc2"
            label="对内名称"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc3"
            label="CTP日期"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc4"
            label="钢刀编号"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="priuserdefnvc5"
            label="盒型"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}
            </template>
          </el-table-column>
          <el-table-column
            prop="wkshp_name"
            label="生产车间"
            show-tooltip-when-overflow
@@ -2254,7 +2314,11 @@
      }
    }
  },
  activated() {   window.addEventListener('resize', this.getHeight)   this.getHeight() }, created() {
  activated() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  created() {
    this.handleRequest()
  },
  mounted() {