Mr.Zhang
2023-08-15 38dff69b2c218ae53b4cc79257368139a2803ebc
08.15
已添加1个文件
已修改18个文件
283 ■■■■■ 文件已修改
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/.env.development 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/components/business/OperaClientMangerWindow.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/components/system/menu/OperaMenuH5Window.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/views/system/menuH5.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/.env.development 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/.env.production 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/public/salary_import_template.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/assets/style/lib.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/assets/style/style.scss 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/business/OperaSalaryParamWindow.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/common/Header.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/ext/OrderQrCodeLabel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/utils/form.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/business/salaryParam.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/business/workPlans.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/ext/plansExt.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/ext/userSalary.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -10,3 +10,4 @@
/web_standard/doumeeplant_web
/web_standard/.vscode
.idea
.DS_Store
platform_web/.env.development
@@ -13,20 +13,11 @@
# 接口前缀
VUE_APP_API_PREFIX = ''
#测试服务器
# VUE_APP_BASE_URL = 'http://139.186.142.91:10012/'
#汇智
#VUE_APP_BASE_URL = 'https://106.14.220.133:10012/'
#任康本地
# VUE_APP_BASE_URL = 'http://192.168.0.15:10012/'
# VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/'
#江萍本地
#VUE_APP_BASE_URL = 'http://192.168.0.12:10012/'
#VUE_APP_BASE_URL = 'http://192.168.0.36:10021/'
#刘磊磊本地
#VUE_APP_BASE_URL = 'http://192.168.0.18:10012/'
#VUE_APP_BASE_URL = 'http://192.168.0.176:10012/'
#VUE_APP_BASE_URL = 'http://6201h1b706.zicp.fun:19470/'
VUE_APP_BASE_URL = 'http://192.168.0.18:10021/'
VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
# VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
platform_web/src/components/business/OperaClientMangerWindow.vue
@@ -217,6 +217,7 @@
        this.form.fileurlfull = this.form.fileStoreAddr ? this.form.fileurlfull : ''
      })
    },
    typeChange() {
      let tempDate = new Date();
      tempDate.setDate(tempDate.getDate() + (this.form.oepnType ? 365 : 15))
platform_web/src/components/system/menu/OperaMenuH5Window.vue
@@ -29,7 +29,7 @@
            @uploadBegin="isUploading=true"
          />
          <div style="display: flex; flex-direction: column-reverse;" v-if="!!form.icon">
            <el-button style="margin-left: 5px; padding: 0 5px;" type="text" @click="form.icon=''">删除</el-button>
            <el-button style="margin-left: 5px; padding: 0 5px;" type="text" @click="deletePic">删除</el-button>
          </div>
        </div>
      </el-form-item>
@@ -59,7 +59,8 @@
      // 需排除选择的菜单ID
      excludeMenuId: null,
      uploadData: {
        floader: 'company/menu'
        // floader: 'company/menu'
        folder: 'company/menu'
      },
      parent: {},
      // 表单数据
@@ -98,7 +99,6 @@
      debugger
      this.title = title
      
      console.log('-----',parent);
      this.visible = true
      // 新建,menu为空时表示新建菜单
      if (target == null) {
@@ -109,6 +109,7 @@
          this.form.id = null
          this.form.parentId = parent == null ? null : parent.id
          this.parentName = parent == null ? null : parent.name
          this.form.fullIcon = ''
        })
        return
      }
@@ -124,6 +125,10 @@
    uploadReverseSuccess(file) {
      this.form.icon = file.imgurl;
      this.form.fullIcon = file.imgurlfull;
    },
    deletePic() {
      this.form.fullIcon=''
      this.form.icon=''
    }
  },
}
platform_web/src/views/system/menuH5.vue
@@ -23,7 +23,7 @@
        <el-table-column prop="name" label="菜单名称"  fixed="left" align="center" min-width="160px"></el-table-column>
        <el-table-column prop="icon" label="图标" align="center" min-width="80px" class-name="table-column-icon">
          <template slot-scope="{row}">
            <el-image v-if="row.icon != null && row.icon !== ''" style="width: 40px; height: 40px;" :src="row.icon"></el-image>
            <el-image v-if="row.icon != null && row.icon !== ''" style="width: 40px; height: 40px;" :src="row.resourcePath + row.icon"></el-image>
            <template v-else>未设置</template>
          </template>
        </el-table-column>
web_standard/.env.development
@@ -13,16 +13,12 @@
# 接口前缀
VUE_APP_API_PREFIX = ''
# 测试服务器
# VUE_APP_BASE_URL = 'http://139.186.142.91:10012/'
# 汇智
# VUE_APP_BASE_URL = 'https://106.14.220.133:10012/'
# 焦松
VUE_APP_BASE_URL = 'http://192.168.0.36:10021/'
# 江萍
VUE_APP_BASE_URL = 'http://192.168.0.35:10021'
# VUE_APP_BASE_URL = 'http://192.168.0.35:10021/'
# VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
# 测试服务器
VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
web_standard/.env.production
@@ -8,21 +8,9 @@
VUE_APP_ROUTER_MODE = 'hash'
# 项目上下文路径
# VUE_APP_CONTEXT_PATH = '/doumeeplant_web/'
VUE_APP_CONTEXT_PATH = '/web/'
# 接口前缀
VUE_APP_API_PREFIX = '/doumeeplant'
# 测试服务器
# VUE_APP_BASE_URL = 'http://139.186.142.91:10012/'
# 演示服务器
# VUE_APP_BASE_URL = 'http://121.41.112.139:10012/'
# 正式环境
# VUE_APP_BASE_URL = 'http://127.0.0.1:10012/'
#艾丽格斯 https://hsky.doumee.com/doumeeplant_api/doc.html
# VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/'
# VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
VUE_APP_BASE_URL = 'https://www.mes.red/doumeeplant/'
web_standard/public/salary_import_template.xlsx
Binary files differ
web_standard/src/assets/style/lib.css
@@ -115,6 +115,7 @@
.success{ color: #70B603; }
.waring{ color: #F59A23; }
.error{ color: #f00; }
.c1{color: #111}.c2{color: #222}.c3{ color: #333;}.c6{ color: #666;}.cc{ color: #ccc;}.cf{ color: #fff;}
/* /deep/ .uicon-close .u-icon--right{ position: absolute; right: 30px; top: 30px; z-index: 999;} */
.popCloseBtn{ position: absolute; width:50px; height:50px; right: 20px; top: 20px;}
.fixedHeader{ position: absolute; left: 0; top: 0;}
web_standard/src/assets/style/style.scss
@@ -89,7 +89,7 @@
.el-date-editor--daterange.el-input__inner,
.el-date-editor--timerange.el-input,
.el-date-editor--timerange.el-input__inner {
  width: 220px !important;
  width: 240px !important;
}
.el-input__inner {
web_standard/src/components/business/OperaSalaryParamWindow.vue
@@ -18,7 +18,7 @@
        </el-select>
      </el-form-item>
      <el-form-item label="工厂" prop="departId">
        <el-select v-model="form.departId" placeholder="请选择工厂" clearable @change="selectFactoey">
        <el-select v-model="form.departId" placeholder="请选择工厂" :disabled="isEdit" clearable @change="selectFactoey">
          <el-option
            v-for="item in factories"
            :key="item.id"
@@ -29,18 +29,18 @@
        </el-select>
      </el-form-item>
      <el-form-item label="物料" prop="materialId">
        <el-select v-model="form.materialId" placeholder="请选择物料" clearable>
        <el-select v-model="form.materialId" placeholder="请选择物料" :disabled="isEdit" clearable @change="selectMaterial">
          <el-option
            v-for="item in materials"
            :key="item.materialId"
            :key="item.realMaterialId"
            :label="item.mmodel.name"
            :value="item.materialId"
            :value="item.realMaterialId"
          >
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="工序" prop="procedureId">
        <el-select v-model="form.procedureId" placeholder="请选择计价方式" clearable>
        <el-select v-model="form.procedureId" placeholder="请选择工序" :disabled="isEdit" clearable>
          <el-option
            v-for="item in productes"
            :key="item.id"
@@ -51,7 +51,7 @@
        </el-select>
      </el-form-item>
      <el-form-item label="工资单价(元)" prop="salary">
        <el-input v-model="form.salary" placeholder="请输入工资单价(元)" v-trim/>
        <el-input v-model="form.salary" placeholder="请输入工资单价(元)" @input="inputZAction(form, 'salary')" v-trim/>
      </el-form-item>
      <el-form-item label="标准效率" prop="num">
        <div style="display: flex;">
@@ -76,6 +76,7 @@
import { getDepartmentListByConditon } from '@/api/ext/departmentExt'
import { getBomMaterialList } from '@/api/ext/bomExt'
import { routeExt as proceList } from '@/api/ext/routeProcedureExt'
import { numRule } from '@/utils/form'
export default {
  name: 'OperaSalaryParamWindow',
  extends: BaseOpera,
@@ -104,6 +105,7 @@
        unqualified: 0,
        type: ''
      },
      isEdit: false,
      type: [
        { label: '计件', value: 0 },
        { label: '计时', value: 1 },
@@ -113,6 +115,18 @@
      productes: [],
      // 验证规则
      rules: {
        departId: [
          { required: true, validator: numRule, message: '请选择工厂', tigger: 'change' }
        ],
        materialId: [
          { required: true, validator: numRule, message: '请选择物料', tigger: 'change' }
        ],
        procedureId: [
          { required: true, validator: numRule, message: '请选择工序', tigger: 'change' }
        ],
        salary: [
          { required: true, validator: numRule, message: '请输入工资单价', tigger: 'blur' }
        ],
      }
    }
  },
@@ -179,10 +193,10 @@
        .then(res => {
          // console.log(res)
          this.materials = res
          if (!isEdit) {
            this.form.materialId = res[0]?res[0].materialId:''
          }
          this.selectMaterial(this.form.materialId, isEdit)
          // if (!isEdit) {
          //   this.form.materialId = res[0]?res[0].materialId:''
          // }
          // this.selectMaterial(this.form.materialId)
        })
        .catch(err => {
          console.log(err)
@@ -192,7 +206,7 @@
     
      let routeId;
      for (const item of this.materials) {
        if (item.materialId === id) {
        if (item.realMaterialId === id) {
          routeId = item.routeId
        }
      }
@@ -201,12 +215,23 @@
          // console.log(res)
          this.productes = res.proceList
          if (!isEdit) {
            // debugger
            this.form.procedureId = this.productes[0]?this.productes[0].id:''
          }
        }).catch(err => {
          console.log(err)
        })
    },
    // 2位有效销售(正)
    inputZAction(item, key) {
      item[key] = item[key].replace(/[^\d.]/g, '')
                      .replace(/\.{2,}/g, '.')
                      .replace('.', '$#$')
                      .replace(/\./g, '')
                      .replace('$#$', '.')
                      .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')
                      .replace(/^\./g, '')
    },
    confirm () {
      // console.log((+this.form.hours) * 3600);
      // console.log((+this.form.minute) * 60);
web_standard/src/components/common/Header.vue
@@ -8,14 +8,18 @@
          {{title}}
        </h2>
        <div class="user">
          <div class="user_help" @click="jumpWord">
          <div class="help" @click="jumpWord">
            <div class="user_help">
            <img src="@/assets/images/ic_help@2x.png" alt="" />
            <span>帮助文档</span>
          </div>
          <div style="margin-right: 10px;">企业代码: {{ tempId }}</div>
            <span class="ml5 mr5">|</span>
            <span>企业代码: {{ tempId }}</span>
          </div>
          <!-- <div style="margin-right: 10px;">企业代码: {{ tempId }}</div> -->
          <el-dropdown trigger="click" style="margin-right: 20px;" v-userState @command="select">
            <span class="el-dropdown-link">
            {{ tempC }}<i class="el-icon-arrow-down el-icon--right"></i>
            <span class="c2 f16">{{ tempC }}</span><i class="el-icon-arrow-down el-icon--right"></i>
            </span>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item v-for="(item, index) in cList" :key="index" :command='item.id'>{{ item.name }}</el-dropdown-item>
@@ -131,7 +135,7 @@
  created () {
    if (this.userInfo.curComDepartment) {
      this.tempC = this.userInfo.curComDepartment.name
      this.tempId = this.userInfo.curComDepartment.id
      this.tempId = this.userInfo.company.id
    }
    getDepartmentListByConditon({
      type: 0
@@ -276,30 +280,41 @@
      // width: 30%;
      flex-shrink: 0;
      // text-align: right;
      vertical-align: middle;
      display: flex;
      align-items: center;
      .user_help {
        width: 111px;
        height: 36px;
      .help {
        display: flex;
        height: 29px;
        line-height: 38px;
        align-items: center;
        justify-content: center;
        background: #F7F7F7;
        border-radius: 4px;
        vertical-align: middle;
        margin-right: 30px;
        span {
          font-size: 12px;
          font-family: PingFangSC-Regular, PingFang SC;
          font-weight: 400;
          vertical-align: middle;
          color: #666666;
        }
        .user_help {
          // width: 111px;
          // background: #F7F7F7;
        cursor: pointer;
        img {
          width: 16px;
          height: 16px;
          margin-right: 7px !important;
            vertical-align: middle;
        }
        span {
          font-size: 16px;
          font-family: PingFangSC-Regular, PingFang SC;
          font-weight: 400;
          color: #666666;
        }
      }
      .el-dropdown {
        flex-shrink: 0;
        top: 2px;
web_standard/src/components/ext/OrderQrCodeLabel.vue
@@ -93,7 +93,7 @@
                <tr>
                  <td>打印信息</td>
                  <td style="text-align:left; line-height:16px;" colspan="2">
                    <div>{{ userInfo.realname + ', ' + current}}</div>
                    <div>{{ userInfo.companyUser.name + ', ' + current}}</div>
                  </td>
                </tr>
              </tbody>
web_standard/src/utils/form.js
@@ -35,3 +35,12 @@
  }
  callback()
}
export function numRule(rule, value, callback) {
  // debugger
  if (value == null || value < 0 || !value) {
    callback(new Error())
  } else {
    callback()
  }
}
web_standard/src/views/.DS_Store
Binary files differ
web_standard/src/views/business/salaryParam.vue
@@ -3,7 +3,7 @@
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      
      <el-form-item label="物料" prop="keyWord">
      <el-form-item label="物料信息" prop="keyWord">
        <el-input v-model="searchForm.keyWord" placeholder="请输入物料名称/编码" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="工序" prop="procedureName">
@@ -22,15 +22,27 @@
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:salaryparam:exportExcel']" @click="exportExcel">导出</el-button>
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:salaryparam:create', 'business:salaryparam:delete']">
        <li><el-button type="primary" @click="$refs.operaSalaryParamWindow.open('新建绩效工资配置')" icon="el-icon-plus" v-permissions="['business:salaryparam:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:salaryparam:delete']">删除</el-button></li>
      <ul class="toolbar" v-permissions="['business:salaryparam:create', 'business:salaryparam:delete', 'business:salaryparam:exportExcel', 'business:salaryparam:importExcel']">
        <li><el-button type="primary" @click="$refs.operaSalaryParamWindow.open('新建绩效工资配置')" v-permissions="['business:salaryparam:create']">新建</el-button></li>
        <li><el-button type="primary" @click="deleteByIdInBatch" v-permissions="['business:salaryparam:delete']">批量删除</el-button></li>
        <li>
          <el-button type="primary" :loading="isWorking.export" v-permissions="['business:salaryparam:exportExcel']" @click="exportExcel">导出</el-button>
        </li>
        <li v-permissions="['business:salaryparam:importExcel']">
          <ImportButton
            text="导入"
            template-name="salary_import_template.xlsx"
            template-path="/template/salary_import_template.xlsx"
            action="/business/salaryParam/importBatch"
            @success="search"
          />
        </li>
      </ul>
      <el-table
        v-loading="isWorking.search"
@@ -40,7 +52,7 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="id" label="主键"  min-width="100px"></el-table-column>
        <el-table-column prop="id" label="序号"  min-width="100px"></el-table-column>
        <el-table-column prop="type" label="计价方式" min-width="100px">
          <template slot-scope="{row}">
            {{ row.type == 0 ? '计件' : '计时' }}
@@ -50,9 +62,12 @@
        <el-table-column prop="materialCode" label="物料编码" min-width="100px"></el-table-column>
        <el-table-column prop="procedureName" label="工序名称" min-width="100px"></el-table-column>
        <el-table-column prop="salary" label="工资单价(元)" min-width="100px"></el-table-column>
        <el-table-column prop="num" label="标准数量" min-width="100px">
        <el-table-column prop="num" label="标准产出" min-width="100px">
          <template slot-scope="{row}">
            {{ row.num == 0 ? '-' : row.num }}
          </template>
        </el-table-column>
        <el-table-column prop="times" label="标准时长" min-width="100px">
        <el-table-column prop="times" label="标准工时" min-width="100px">
          <template slot-scope="{row}">
            {{ timesToStr(row.times) }}
          </template>
@@ -63,7 +78,7 @@
          </template>
        </el-table-column>
        <el-table-column prop="createTime" label="创建时间" min-width="150px"></el-table-column>
        <!-- <el-table-column prop="updateUser" label="更新人编码" min-width="100px"></el-table-column> -->
        <el-table-column prop="createUserName" label="创建人" min-width="100px"></el-table-column>
        <!-- <el-table-column prop="updateTime" label="更新时间" min-width="100px"></el-table-column>
        <el-table-column prop="remark" label="备注" min-width="100px"></el-table-column>
        <el-table-column prop="rootDepartId" label="主组织编码(关联department表根组织)" min-width="100px"></el-table-column>
@@ -98,11 +113,12 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import ImportButton from '@/components/common/ImportButton'
import OperaSalaryParamWindow from '@/components/business/OperaSalaryParamWindow'
export default {
  name: 'SalaryParam',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaSalaryParamWindow },
  components: { TableLayout, Pagination, OperaSalaryParamWindow, ImportButton },
  data () {
    return {
      // 搜索
@@ -128,7 +144,8 @@
  },
  methods: {
    timesToStr(times) {
      if (!times) {
      if (times==0||!times) {
        return '-'
      }
      let sec = times%60
web_standard/src/views/business/workPlans.vue
@@ -26,6 +26,9 @@
      <el-form-item label="批次号" prop="batch">
        <el-input v-model="searchForm.batch" placeholder="请输入" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="销售单号" prop="salesorder">
        <el-input v-model="searchForm.salesorder" placeholder="请输入" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="计划日期" prop="planDate">
        <el-date-picker style="width: 300px;" @change="changeDate" v-model="searchForm.planDate" type="datetimerange"
          value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
@@ -45,7 +48,7 @@
          <ImportButton
            text="导入"
            template-name="workplans_import_template.xlsx"
            template-path="template/workplans_import_template.xlsx"
            template-path="/template/workplans_import_template.xlsx"
            action="/business/workPlans/importBatch"
            @success="search"
          />
@@ -57,11 +60,12 @@
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" border stripe @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="planCode" label="成品计划编码" min-width="150px">
        <el-table-column prop="planCode" label="成品计划编码" min-width="190px">
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.plannedProgress.open('计划执行进度', row)">
              <span class="long-title-style">{{ row.planCode }}</span>
            </el-button>
            <el-tag type="danger" size="mini" v-if="row.hasExpire">延期</el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="materialName" label="物料名称" min-width="100px"></el-table-column>
@@ -184,6 +188,7 @@
        factoryId: '',
        materialId: '',
        batch: '',
        salesorder: '',
        planStatus: '',
        planCode: ''
      },
web_standard/src/views/ext/plansExt.vue
@@ -100,7 +100,11 @@
        @row-style="rowStyle"
      >
        <el-table-column type="selection" fixed="left" width="55"></el-table-column>
        <el-table-column prop="id" label="计划序号" fixed="left" min-width="80px"></el-table-column>
        <el-table-column prop="id" label="计划序号" fixed="left" min-width="80px">
          <template slot-scope="{row}">
            <span>{{ row.id }}</span><el-tag type="danger" size="mini" v-if="row.hasExpire">延期</el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="mmodel.name" fixed="left" label="物料名称" show-overflow-tooltip min-width="140px">
          <template slot-scope="{row}">
            <el-button type="text" class="materail" @click="showPlan(row.id)">
@@ -110,36 +114,35 @@
        </el-table-column>
        <el-table-column prop="mmodel.code" label="物料编码" min-width="160px">
        </el-table-column>
        <el-table-column prop="planDate" label="计划日期" min-width="100px"></el-table-column>
        <el-table-column prop="fmodel.name" label="工厂" min-width="100px"></el-table-column>
        <el-table-column prop="pmodel.name" label="工序" show-overflow-tooltip min-width="100px">
          <template slot-scope="{row}">
            <span class="long-title-style">{{ row.pmodel ? row.pmodel.name : '-' }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="batch" label="生产批次号" show-overflow-tooltip min-width="140px"></el-table-column>
        <el-table-column prop="num" label="计划数量" min-width="100px">
          <template slot-scope="{row}">
            <span>{{ row.num + (row.umodel ? row.umodel.name : '') }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="batch" label="生产批次号" show-overflow-tooltip min-width="140px"></el-table-column>
        <el-table-column prop="urgent" label="优先级" min-width="60px"></el-table-column>
        <el-table-column prop="workPlanStartDate" label="计划开始日期" min-width="100px">
          <!-- <template slot-scope="{row}">
            {{ row.workPlanStartDate ? row.workPlanStartDate.substring(0, row.workPlanStartDate.length-9) : '-' }}
          </template> -->
        </el-table-column>
        <el-table-column prop="workPlanEndDate" label="计划结束日期" min-width="100px">
          <template slot-scope="{row}">
            {{ row.workPlanStartDate ? row.workPlanStartDate.substring(0, row.workPlanStartDate.length-9) : '-' }}
          </template>
        </el-table-column>
        <el-table-column label="计划状态" min-width="80px">
          <template slot-scope="{row}">
            {{ statusToStr(row.status) }}
          </template>
        </el-table-column>
        <el-table-column label="计划类型" min-width="80px">
          <template slot-scope="{row}">
            <span :style="typeColor(row.type)">{{ typeToStr(row.type) }}</span>
          </template>
        </el-table-column>
        <el-table-column label="暂停" min-width="60px">
          <template slot-scope="{row}">
            {{ row.paused == 0 ? '否' : '是' }}
          </template>
        </el-table-column>
        <el-table-column prop="workPlanCode" label="成品计划编码" min-width="140px"></el-table-column>
        <el-table-column prop="distributNoDoneNum" label="已分配未报工数量" min-width="140px">
          <template slot-scope="{row}">
            <span>{{row.distributNoDoneNum ? (row.distributNoDoneNum + (row.umodel ? row.umodel.name : '')) : '-' }}</span>
@@ -153,6 +156,18 @@
        <el-table-column prop="unqulifiedNum" label="不良数量" min-width="100px">
          <template slot-scope="{row}">
            <span>{{row.unqulifiedNum ? (row.unqulifiedNum + (row.umodel ? row.umodel.name : '')) : '-' }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="urgent" label="优先级" min-width="60px"></el-table-column>
        <el-table-column label="暂停" min-width="60px">
          <template slot-scope="{row}">
            {{ row.paused == 0 ? '否' : '是' }}
          </template>
        </el-table-column>
        <el-table-column prop="workPlanCode" label="主计划编码" min-width="140px"></el-table-column>
        <el-table-column label="类型" min-width="80px">
          <template slot-scope="{row}">
            <span :style="typeColor(row.type)">{{ typeToStr(row.type) }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="publishDate" label="发布日期" min-width="100px">
@@ -559,7 +574,7 @@
        if (index === 0) {
          sums[index] = '合计';
          return;
        } else if (index === 1 || index === 8 || index === 9 || index === 16 || index === 17) {
        } else if (index === 1 || index === 6 || index === 8 || index === 9 || index === 14 || index === 16 || index === 17) {
          sums[index] = '-';
          return;
        } else if (index === 8 ) {
web_standard/src/views/ext/userSalary.vue
@@ -12,8 +12,8 @@
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="物料编码" prop="mmodelCode">
        <el-input v-model="searchForm.mmodelCode" placeholder="请输入物料编码" @keypress.enter.native="search"></el-input>
      <el-form-item label="物料信息" prop="materialName">
        <el-input v-model="searchForm.materialName" placeholder="请输入物料名称/编码" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="工序" prop="procedureId">
        <el-select v-model="searchForm.procedureId" filterable clearable placeholder="请选择">
@@ -53,7 +53,7 @@
        stripe
        border
      >
        <el-table-column prop="id" label="序号" fixed="left" min-width="80px"></el-table-column>
        <el-table-column type="index" :index="customIndex" label="序号" fixed="left" min-width="80px"></el-table-column>
        <el-table-column prop="userInfo.userName" label="生产人员" min-width="100px"></el-table-column>
        <el-table-column prop="userInfo.departName" label="部门" min-width="100px"> </el-table-column>
        <el-table-column prop="materialName" label="物料名称" min-width="100px"></el-table-column>
@@ -62,8 +62,16 @@
        <el-table-column prop="workorderCode" label="工单编码" min-width="150px"></el-table-column>
        <el-table-column prop="unitName" label="单位" min-width="100px"></el-table-column>
        <el-table-column prop="num" label="报工数" min-width="100px"></el-table-column>
        <el-table-column prop="qualifiedNum" label="良品数" min-width="100px"></el-table-column>
        <el-table-column prop="unQualifiedNum" label="不良品数" min-width="100px"></el-table-column>
        <el-table-column prop="qualifiedNum" label="良品数" min-width="100px">
          <template slot-scope="{row}">
            {{ row.qualifiedNum || 0 }}
          </template>
        </el-table-column>
        <el-table-column prop="unQualifiedNum" label="不良品数" min-width="100px">
          <template slot-scope="{row}">
            {{ row.unQualifiedNum || 0 }}
          </template>
        </el-table-column>
        <el-table-column prop="rate" label="合格率(%)" min-width="100px"></el-table-column>
      </el-table>
      <pagination
@@ -95,7 +103,7 @@
        userId: '',
        startDate: '',
        endDate: '',
        materialId: '',
        materialName: '',
      },
      procedures: [
      ],
@@ -123,7 +131,13 @@
      'field.main': 'name',
      sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }]
    })
    let tempDate = new Date()
    let year = tempDate.getFullYear()
    let month = tempDate.getMonth() + 1
    let day = tempDate.getDate()
    this.searchForm.startDate = `${year}-${month}-01`
    this.searchForm.endDate = `${year}-${month}-${day}`
    this.planDate = [this.searchForm.startDate, this.searchForm.endDate]
    this.search()
  },
  activated() {
@@ -194,6 +208,10 @@
        }
      });
      return sums
    },
    customIndex(index) {
      console.log();
      return (this.tableData.pagination.pageIndex-1) * this.tableData.pagination.pageSize + index + 1
    }
  }
}