| | |
| | | name: 'OperaPermissionWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | props: { |
| | | type: { |
| | | type: Number|String, |
| | | default: 0 |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | // åæéç |
| | |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | this.form.type = this.type |
| | | }) |
| | | return |
| | | } |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.type = this.type |
| | | }) |
| | | }, |
| | | confirm () { |
| | |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaPermissionWindow ref="operaPermissionWindow" @success="handlePageChange"/> |
| | | <OperaPermissionWindow ref="operaPermissionWindow" :type="0" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['system:permission:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="æéç¼ç " prop="code"> |
| | | <el-input v-model="searchForm.code" v-trim placeholder="请è¾å
¥æéç¼ç " @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æéåç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" v-trim placeholder="请è¾å
¥æéåç§°" @keypress.enter.native="search"/> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:permission:create', 'system:permission:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaPermissionWindow.open('æ°å»ºç³»ç»æé')" icon="el-icon-plus" v-permissions="['system:permission:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" v-permissions="['system:permission:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | :default-sort = "{prop: 'createTime', order: 'descending'}" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <el-table-column type="selection" fixed="left" align="center" width="55"></el-table-column> |
| | | <el-table-column prop="code" label="æéç¼ç " fixed="left" align="center" min-width="200px"></el-table-column> |
| | | <el-table-column prop="name" label="æéåç§°" fixed="left" align="center" min-width="120px"></el-table-column> |
| | | <el-table-column prop="remark" label="æé夿³¨" align="center" min-width="120px"></el-table-column> |
| | | <el-table-column prop="createUser" label="å建人" align="center" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" align="center" min-width="140px" sortable="custom" sort-by="perm.CREATE_TIME"></el-table-column> |
| | | <el-table-column prop="updateUser" label="æ´æ°äºº" align="center" min-width="100px"> |
| | | <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="updateTime" label="æ´æ°æ¶é´" align="center" min-width="140px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['system:permission:update', 'system:permission:delete'])" |
| | | label="æä½" |
| | | align="center" |
| | | min-width="130" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button v-if="!row.fixed" type="text" @click="$refs.operaPermissionWindow.open('ç¼è¾ç³»ç»æé', row)" v-permissions="['system:permission:update']">ç¼è¾</el-button> |
| | | <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" style="color: red" v-permissions="['system:permission:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaPermissionWindow ref="operaPermissionWindow" :type="1" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import OperaPermissionWindow from '@/components/system/permission/OperaPermissionWindow' |
| | | export default { |
| | | name: 'SystemPermission', |
| | | extends: BaseTable, |
| | | components: { OperaPermissionWindow, TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | code: '', |
| | | name: '', |
| | | remark: '', |
| | | type: 1 |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'æé', |
| | | api: '/system/permission', |
| | | sorts: [{ |
| | | property: 'perm.CREATE_TIME', |
| | | direction: 'DESC' |
| | | }] |
| | | }) |
| | | this.search() |
| | | } |
| | | } |
| | | </script> |
| | |
| | | # ç¦æ¾ |
| | | VUE_APP_BASE_URL = 'http://192.168.0.36:10021/' |
| | | |
| | | # æ±è |
| | | VUE_APP_BASE_URL = 'http://192.168.0.35:10021' |
| | | |
| | | # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | |
| | |
| | | "alias": "eva", |
| | | "command": "page", |
| | | "option": { |
| | | "resources": "workorder_check_attr_ext" |
| | | "resources": "salary_param" |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/salaryParam/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/salaryParam/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/salaryParam/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/business/salaryParam/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/business/salaryParam/delete/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/business/salaryParam/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/ext/workorderRecordExt/salaryStatistic', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/ext/workorderRecordExt/exportSalaryStatistics', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/ext/workorderRecordExt/userSalary', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/ext/workorderRecordExt/exportUserSalary', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="计价æ¹å¼" prop="type"> |
| | | <el-select v-model="form.type" placeholder="è¯·éæ©è®¡ä»·æ¹å¼" clearable> |
| | | <el-option |
| | | v-for="item in type" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å" prop="departId"> |
| | | <el-select v-model="form.departId" placeholder="è¯·éæ©å·¥å" clearable @change="selectFactoey"> |
| | | <el-option |
| | | v-for="item in factories" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç©æ" prop="materialId"> |
| | | <el-select v-model="form.materialId" placeholder="è¯·éæ©ç©æ" clearable> |
| | | <el-option |
| | | v-for="item in materials" |
| | | :key="item.materialId" |
| | | :label="item.mmodel.name" |
| | | :value="item.materialId" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥åº" prop="procedureId"> |
| | | <el-select v-model="form.procedureId" placeholder="è¯·éæ©è®¡ä»·æ¹å¼" clearable> |
| | | <el-option |
| | | v-for="item in productes" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥èµåä»·ï¼å
)" prop="salary"> |
| | | <el-input v-model="form.salary" placeholder="请è¾å
¥å·¥èµåä»·ï¼å
)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ åæç" prop="num"> |
| | | <div style="display: flex;"> |
| | | <el-input v-model="form.num" v-trim/>/ |
| | | <el-input v-model="form.hours" v-trim/><div class="unit">å°æ¶</div> |
| | | <el-input v-model="form.minute" v-trim/><div class="unit">åé</div> |
| | | <el-input v-model="form.second" v-trim/><div>ç§</div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸è¯åæ¯å¦è®¡å
¥" prop="unqualified"> |
| | | <el-switch v-model="form.unqualified" :inactive-value="0" :active-value="1"></el-switch> |
| | | <!-- <el-input v-model="form.unqualified" placeholder="请è¾å
¥ä¸è¯åæ¯å¦è®¡å
¥ 0å¦ 1æ¯" v-trim/> --> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getDepartmentListByConditon } from '@/api/ext/departmentExt' |
| | | import { getBomMaterialList } from '@/api/ext/bomExt' |
| | | import { routeExt as proceList } from '@/api/ext/routeProcedureExt' |
| | | export default { |
| | | name: 'OperaSalaryParamWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | materialId: '', |
| | | createUser: '', |
| | | createTime: '', |
| | | updateUser: '', |
| | | updateTime: '', |
| | | remark: '', |
| | | rootDepartId: '', |
| | | departId: '', |
| | | procedureId: '', |
| | | bomId: '', |
| | | salary: '', |
| | | num: '', |
| | | times: '', |
| | | hours: '', |
| | | minute: '', |
| | | second: '', |
| | | unqualified: 0, |
| | | type: '' |
| | | }, |
| | | type: [ |
| | | { label: '计件', value: 0 }, |
| | | { label: '计æ¶', value: 1 }, |
| | | ], |
| | | factories: [], |
| | | materials: [], |
| | | productes: [], |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/salaryParam', |
| | | 'field.id': 'id' |
| | | }) |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.isEdit = false |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | this.form.times = '' |
| | | this.form.second = '' |
| | | this.form.minute = '' |
| | | this.form.hours = '' |
| | | this.form.departId = this.factories[0]?this.factories[0].id:'' |
| | | this.selectFactoey(this.form.departId) |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | this.isEdit = true |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | let { times } = target |
| | | this.form.second = +times%60 |
| | | let lesMin = Math.floor(+times/60) |
| | | this.form.minute = lesMin%60 |
| | | this.form.hours = Math.floor(lesMin/60) |
| | | this.selectFactoey(this.form.departId, true) |
| | | |
| | | }) |
| | | }, |
| | | initData() { |
| | | getDepartmentListByConditon({ type: 1 }) |
| | | .then(res => { |
| | | this.factories = res |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | selectFactoey (v, isEdit=false) { |
| | | |
| | | // console.log(v) |
| | | if (!isEdit) { |
| | | this.materials = [] |
| | | this.form.materialId = '' |
| | | this.form.procedureId = '' |
| | | this.productes = [] |
| | | } |
| | | getBomMaterialList({ departId: v }) |
| | | .then(res => { |
| | | // console.log(res) |
| | | this.materials = res |
| | | if (!isEdit) { |
| | | this.form.materialId = res[0]?res[0].materialId:'' |
| | | } |
| | | this.selectMaterial(this.form.materialId, isEdit) |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | selectMaterial (id, isEdit) { |
| | | |
| | | let routeId; |
| | | for (const item of this.materials) { |
| | | if (item.materialId === id) { |
| | | routeId = item.routeId |
| | | } |
| | | } |
| | | proceList(routeId) |
| | | .then(res => { |
| | | // console.log(res) |
| | | this.productes = res.proceList |
| | | if (!isEdit) { |
| | | this.form.procedureId = this.productes[0]?this.productes[0].id:'' |
| | | } |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | confirm () { |
| | | // console.log((+this.form.hours) * 3600); |
| | | // console.log((+this.form.minute) * 60); |
| | | // console.log(this.form.second); |
| | | this.form.times = (+this.form.hours) * 3600 + (+this.form.minute)* 60 + (+this.form.second) |
| | | if (this.form.id == null || this.form.id === '') { |
| | | this.__confirmCreate() |
| | | return |
| | | } |
| | | this.__confirmEdit() |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .unit { |
| | | white-space: nowrap; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="1182px" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" width="1182px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <div style="min-width:1150px"> |
| | | <el-form :model="form" ref="form" label-width="100px" label-suffix="ï¼" inline> |
| | | <div style="margin-bottom:15px"> |
| | |
| | | <!-- 0å·²å建ã1已夿ã2å·²å®å·¥æ£ã3å·²æ£éªã4å·²æ¥å·¥ãã6已忶 --> |
| | | <span v-if="form.status==0" style="background-color: #305ED5;" class="status-log">å·²å建</span> |
| | | <span v-else-if="form.status==6" style="background-color: #BBBBBB;" class="status-log">已忶</span> |
| | | <span v-else style="background-color: #03AF76;" class="status-log">{{ form.status==1 ? '已夿' : form.status==2 ? 'å·²å®å·¥æ£' : form.status==3 ? 'å·²æ£éª' : 'å·²æ¥å·¥' }}</span> |
| | | <span v-else style="background-color: #03AF76;" class="status-log">{{ form.status == 1 ? '已夿' : form.status == 2 ? |
| | | 'å·²å®å·¥æ£' : form.status == 3 ? 'å·²æ£éª' : 'å·²æ¥å·¥' }}</span> |
| | | <!-- <span v-if="form.status==3" style="background-color: #BBBBBB;" class="status-log">已忶</span> --> |
| | | </div> |
| | | <el-form-item label="å·¥åç¼å·" prop="workorderCode" class="count-style" > |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane label="ç产æ¥å·¥" name="first"> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="report" |
| | | border |
| | | show-summary |
| | | :summary-method="getReportSummaries" |
| | | > |
| | | <el-table v-loading="isSearch" :data="report" border show-summary :summary-method="getReportSummaries"> |
| | | <!-- stripe --> |
| | | <el-table-column prop="createTime" label="æ¥å·¥æ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column label="ç产人å" show-overflow-tooltip min-width="100px"> |
| | |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
容å¨ç¼å·" show-overflow-tooltip="" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="mmodel.name" label="ç©æåç§°" show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="60px"> |
| | | <el-table-column prop="qualifiedNum" label="åæ ¼æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="valid-style">{{ row.qualifiedNum + row.umodel.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unqualifiedNum" label="ä¸è¯æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="unvalid-style">{{ row.unqualifiedNum + row.umodel.name }}</span> |
| | | <!-- <span :class="row.materialDonetype==0 ? 'valid-style' : ''">{{ row.num + row.umodel.name }}</span> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="æ¥å·¥æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.num + row.umodel.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="60px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.doneType==0" class="valid-style">åæ ¼</span> |
| | | <span v-else-if="row.doneType==1" class="unvalid-style">ä¸è¯</span> |
| | |
| | | <template slot-scope="{row}"> |
| | | <span :class="row.doneType==0 ? 'valid-style' : (row.doneType==1 ? 'unvalid-style' :(row.doneType==2 ? 'scrap-style' : ''))">{{ row.num ? (row.num + (row.umodel.name ? row.umodel.name : '')) : '0' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="ç产æ£éª" name="second"> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="verify" |
| | | stripe |
| | | border> |
| | | <el-table v-loading="isSearch" :data="verify" stripe border> |
| | | <el-table-column prop="code" label="æ£éªè®°å½ç¼å·" min-width="140px"></el-table-column> |
| | | <el-table-column prop="createTime" label="æ£éªæ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column prop="smodelRealName" label="æ£éªäººå" min-width="100px"></el-table-column> |
| | |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="ç产ææ" name="third"> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="feeds" |
| | | stripe |
| | | border |
| | | show-summary |
| | | :summary-method="getPutSummaries" |
| | | > |
| | | <el-table v-loading="isSearch" :data="feeds" stripe border show-summary :summary-method="getPutSummaries"> |
| | | <el-table-column prop="createTime" label="æææ¶é´" min-width="140px"></el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
容å¨ç¼å·" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="mmodel.name" label="ç©æåç§°" min-width="100px"></el-table-column> |
| | |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="çäº§ç¹æ£" name="fourth"> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="check" |
| | | stripe |
| | | border |
| | | > |
| | | <el-table v-loading="isSearch" :data="check" stripe border> |
| | | <el-table-column prop="createTime" label="è®°å½æ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column prop="userName" label="æä½äººå" min-width="100px"></el-table-column> |
| | | <el-table-column prop="attrName" label="æ£ç¹å±æ§" min-width="100px"></el-table-column> |
| | |
| | | <el-table-column prop="value" align="left"></el-table-column> |
| | | </el-table> --> |
| | | </el-tab-pane> |
| | | <Pagination |
| | | style="margin-top:10px" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="pagination" |
| | | ></Pagination> |
| | | <Pagination style="margin-top:10px" @size-change="handleSizeChange" @current-change="handlePageChange" |
| | | :pagination="pagination"></Pagination> |
| | | </el-tabs> |
| | | </div> |
| | | <div slot="footer" class="window__header"> |
| | |
| | | if (index === 0) { |
| | | sums[index] = 'å计'; |
| | | return; |
| | | } else if (index === 4) { |
| | | sums[index] = '-'; |
| | | return; |
| | | } |
| | | const values = data.map(item => Number(item[column.property])); |
| | | if (!values.every(value => isNaN(value))) { |
| | |
| | | width: 23%; |
| | | // height: 32px; |
| | | } |
| | | |
| | | ::v-deep .el-form-item { |
| | | margin-bottom: 8px !important; |
| | | } |
| | | |
| | | .text-code { |
| | | color: #333; |
| | | font-weight: 500; |
| | |
| | | font-size: 15px; |
| | | vertical-align:middle; |
| | | } |
| | | |
| | | .status-log { |
| | | padding: 1px 5px; |
| | | border-radius: 3px; |
| | |
| | | this.form.planDate = new Date() |
| | | this.form.planId = target.id |
| | | this.form.planNum = target.num - target.distributNum |
| | | getDeviceByCondition({}) |
| | | getDeviceByCondition({procedureId: target.procedureId}) |
| | | .then(res => { |
| | | |
| | | this.device = res |
| | | this.form.proGroupId = res[0] ? res[0].id : '' |
| | | this.getUser(this.form.proGroupId) |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:salaryparam:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | |
| | | <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"> |
| | | <el-input v-model="searchForm.procedureName" placeholder="请è¾å
¥å·¥åº" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="计价æ¹å¼" prop="type"> |
| | | <el-select v-model="searchForm.type" placeholder="è¯·éæ©è®¡ä»·æ¹å¼" clearable> |
| | | <el-option |
| | | v-for="item in type" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </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> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | @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="type" label="计价æ¹å¼" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.type == 0 ? '计件' : '计æ¶' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" min-width="140px"></el-table-column> |
| | | <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> |
| | | <el-table-column prop="times" label="æ åæ¶é¿" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ timesToStr(row.times) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unqualified" label="ä¸è¯åæ¯å¦è®¡å
¥" min-width="110px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.unqualified == 0 ? 'å¦' : 'æ¯' }} |
| | | </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="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> |
| | | <el-table-column prop="departId" label="å·¥åç¼ç ï¼å
³èdepartment表ï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="bomId" label="bomç¼ç ï¼å
³èbom表ï¼" min-width="100px"></el-table-column> --> |
| | | |
| | | <el-table-column |
| | | v-if="containPermissions(['business:salaryparam:update', 'business:salaryparam:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaSalaryParamWindow.open('ç¼è¾ç»©æå·¥èµé
', row)" v-permissions="['business:salaryparam:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" v-permissions="['business:salaryparam:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaSalaryParamWindow ref="operaSalaryParamWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaSalaryParamWindow from '@/components/business/OperaSalaryParamWindow' |
| | | export default { |
| | | name: 'SalaryParam', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaSalaryParamWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | keyWord: '', |
| | | procedureName: '', |
| | | type: '' |
| | | }, |
| | | type: [ |
| | | { label: '计件', value: '0' }, |
| | | { label: '计æ¶', value: '1' }, |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设置类-绩æå·¥èµé
置表', |
| | | api: '/business/salaryParam', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | timesToStr(times) { |
| | | if (!times) { |
| | | return '-' |
| | | } |
| | | let sec = times%60 |
| | | let lesMin = Math.floor(times/60) |
| | | let min = lesMin%60 |
| | | let hours = Math.floor(lesMin/60) |
| | | return `${hours}æ¶${min}å${sec}ç§` |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ä¼å
级" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <el-table-column prop="urgent" label="ä¼å
级" min-width="80px"> |
| | | <!-- <template slot-scope="{row}"> |
| | | <span v-if="row.urgent">{{ row.urgent }}</span> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column label="æå" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.paused==0?'å¦':'æ¯' }} |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout v-permissions="['ext:workorderrecordext:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" label-suffix="ï¼" inline> |
| | | <el-form-item label="ç产人å" prop="userId"> |
| | | <el-select v-model="searchForm.userId" clearable filterable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in proUsers" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.userId"> |
| | | </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> |
| | | <el-form-item label="å·¥åº" prop="procedureId"> |
| | | <el-select v-model="searchForm.procedureId" filterable clearable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="(item, index) in procedures" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥å·¥æ¶é´"> |
| | | <el-date-picker |
| | | v-model="planDate" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="~" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | @change="dateChange" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <!-- v-permissions="['ext:workorderrecordext:exportExcel']" --> |
| | | <li ><el-button type="primary" :loading="isWorking.export" @click="exportExcel">导åº</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | > |
| | | <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="jijianSalary" label="计件工èµ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.jijianSalary / 100 }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="jishiSalary" label="计æ¶å·¥èµ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.jishiSalary / 100 }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="æ¥å·¥åæ»æ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="totalSalary" label="å°è®¡å·¥èµ(å
)" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.totalSalary / 100 }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { productesGroup } from '@/api/ext/proceduresExt' |
| | | import { companyUserExtAllUser } from '@/api/ext/companyUserExt' |
| | | export default { |
| | | name: 'WorkorderRecordExt', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | procedureId: '', |
| | | userId: '', |
| | | startDate: '', |
| | | endDate: '', |
| | | materialId: '', |
| | | }, |
| | | procedures: [ |
| | | ], |
| | | proUsers: [ |
| | | ], |
| | | |
| | | orderStatus:[ |
| | | // 0å·²å建ã1已颿ã2å·²å®å·¥æ£ã3å·²æ£éªã4å·²è¿å·¥ã5å·²å
¥åºã6å·²æåã7已忶ã8å·²å
³é |
| | | // 0å·²å建ã1已夿ã2å·²å®å·¥æ£ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶 |
| | | { name: 'å·²å建', id: 0 }, |
| | | { name: '已夿', id: 1 }, |
| | | { name: 'å·²å®å·¥æ£', id: 2 }, |
| | | { name: 'å·²æ£éª', id: 3 }, |
| | | { name: 'å·²æ¥å·¥', id: 4 }, |
| | | { name: '已忶', id: 6 } |
| | | ], |
| | | planDate: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'æ¥å·¥è®°å½', |
| | | api: '/ext/salaryStatistic', |
| | | 'field.id': 'id', |
| | | 'field.main': 'name', |
| | | sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] |
| | | }) |
| | | |
| | | this.search() |
| | | }, |
| | | activated() { |
| | | productesGroup({}) |
| | | .then(res => { |
| | | this.procedures = res |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | companyUserExtAllUser({ departmentId: this.$store.state.userInfo.curComDepartment.id }) |
| | | .then(res => { |
| | | this.proUsers = res |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | methods: { |
| | | dateChange (v) { |
| | | // console.log('æ¥æéæ©äº') |
| | | this.searchForm.startDate = v[0] |
| | | this.searchForm.endDate = v[1] |
| | | }, |
| | | reset () { |
| | | // console.log('rest', this.searchDate) |
| | | this.planDate = [] |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | this.$refs.searchForm.resetFields() |
| | | this.search() |
| | | }, |
| | | statusToStr (row) { |
| | | for (const item of this.orderStatus) { |
| | | if (item.id === row.omodel.status) { |
| | | return item.name |
| | | } |
| | | } |
| | | return '-' |
| | | }, |
| | | customIndex(index) { |
| | | console.log(); |
| | | return (this.tableData.pagination.pageIndex-1) * this.tableData.pagination.pageSize + index + 1 |
| | | } |
| | | } |
| | | } |
| | | |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout v-permissions="['ext:workorderrecordext:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" label-suffix="ï¼" inline> |
| | | <el-form-item label="ç产人å" prop="userId"> |
| | | <el-select v-model="searchForm.userId" clearable filterable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in proUsers" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.userId"> |
| | | </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> |
| | | <el-form-item label="å·¥åº" prop="procedureId"> |
| | | <el-select v-model="searchForm.procedureId" filterable clearable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="(item, index) in procedures" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥å·¥æ¶é´"> |
| | | <el-date-picker |
| | | v-model="planDate" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="~" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | @change="dateChange" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <!-- v-permissions="['ext:workorderrecordext:exportExcel']" --> |
| | | <li ><el-button type="primary" :loading="isWorking.export" @click="exportExcel">导åº</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="id" 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> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " min-width="140px"></el-table-column> |
| | | <el-table-column prop="procedureName" label="å·¥åºåç§°" min-width="100px"></el-table-column> |
| | | <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="rate" label="åæ ¼ç(%)" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { getDeviceByCondition } from '@/api/ext/deviceExt' |
| | | import { productesGroup } from '@/api/ext/proceduresExt' |
| | | import { companyUserExtAllUser } from '@/api/ext/companyUserExt' |
| | | import { addPrecision } from '@/utils/util' |
| | | export default { |
| | | name: 'WorkorderRecordExt', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | procedureId: '', |
| | | userId: '', |
| | | startDate: '', |
| | | endDate: '', |
| | | materialId: '', |
| | | }, |
| | | procedures: [ |
| | | ], |
| | | proUsers: [ |
| | | ], |
| | | |
| | | orderStatus:[ |
| | | // 0å·²å建ã1已颿ã2å·²å®å·¥æ£ã3å·²æ£éªã4å·²è¿å·¥ã5å·²å
¥åºã6å·²æåã7已忶ã8å·²å
³é |
| | | // 0å·²å建ã1已夿ã2å·²å®å·¥æ£ã3å·²æ£éªã4å·²æ¥å·¥ã5å·²å
¥åºã6已忶 |
| | | { name: 'å·²å建', id: 0 }, |
| | | { name: '已夿', id: 1 }, |
| | | { name: 'å·²å®å·¥æ£', id: 2 }, |
| | | { name: 'å·²æ£éª', id: 3 }, |
| | | { name: 'å·²æ¥å·¥', id: 4 }, |
| | | { name: '已忶', id: 6 } |
| | | ], |
| | | planDate: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'æ¥å·¥è®°å½', |
| | | api: '/ext/userSalary', |
| | | 'field.id': 'id', |
| | | 'field.main': 'name', |
| | | sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] |
| | | }) |
| | | |
| | | this.search() |
| | | }, |
| | | activated() { |
| | | productesGroup({}) |
| | | .then(res => { |
| | | this.procedures = res |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | companyUserExtAllUser({ departmentId: this.$store.state.userInfo.curComDepartment.id }) |
| | | .then(res => { |
| | | this.proUsers = res |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | methods: { |
| | | dateChange (v) { |
| | | // console.log('æ¥æéæ©äº') |
| | | this.searchForm.startDate = v[0] |
| | | this.searchForm.endDate = v[1] |
| | | }, |
| | | reset () { |
| | | // console.log('rest', this.searchDate) |
| | | this.planDate = [] |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | this.$refs.searchForm.resetFields() |
| | | this.search() |
| | | }, |
| | | statusToStr (row) { |
| | | for (const item of this.orderStatus) { |
| | | if (item.id === row.omodel.status) { |
| | | return item.name |
| | | } |
| | | } |
| | | return '-' |
| | | }, |
| | | getSummaries (param) { |
| | | const { columns, data } = param; |
| | | const sums = []; |
| | | columns.forEach((column, index) => { |
| | | if (index === 0) { |
| | | sums[index] = 'å计'; |
| | | return; |
| | | } else if (index === 4 || index === 8 || index === 6 || index === 10) { |
| | | // || index === 8 || index === 9 || index === 16 || index === 17 |
| | | sums[index] = '-'; |
| | | return; |
| | | } |
| | | const values = data.map(item => { |
| | | if (index === 6) { |
| | | return Number(item.omodel.planNum) |
| | | } else { |
| | | return Number(item[column.property]) |
| | | } |
| | | |
| | | }); |
| | | if (!values.every(value => isNaN(value))) { |
| | | sums[index] = 0 |
| | | values.forEach(item => { |
| | | sums[index] = addPrecision(item, sums[index]) |
| | | }) |
| | | } else { |
| | | sums[index] = '-'; |
| | | } |
| | | }); |
| | | return sums |
| | | } |
| | | } |
| | | } |
| | | |
| | | </script> |
| | |
| | | status: '', |
| | | mixParam: '', |
| | | pgmodelId: '', |
| | | statusList: [0,1,2,3] |
| | | statusList: [0,1,2,3,7] |
| | | }, |
| | | origins: [], |
| | | types: [ |
| | |
| | | { name: 'å·²æ£éª', id: 3 }, |
| | | // { name: 'å·²æ¥å·¥', id: 4 }, |
| | | // { name: 'å·²å
¥åº', id: 5 }, |
| | | // { name: '已忶', id: 6 } |
| | | { name: 'ç产ä¸', id: 7 } |
| | | ], |
| | | productes: [ |
| | | ], |
| | |
| | | <span class="long-title-style">{{ row.procedureName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="doneType" label="è´¨é屿§" min-width="100px"> |
| | | <el-table-column prop="qualifiedNum" label="åæ ¼æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.materialDonetype==0" class="valid-style">åæ ¼</span> |
| | | <span v-else-if="row.materialDonetype==1" class="unvalid-style">ä¸è¯</span> |
| | | <!-- <span v-else-if="row.doneType==2" class="scrap-style">æ¥åº</span> --> |
| | | <span v-else>-</span> |
| | | <span class="valid-style">{{ row.qualifiedNum + row.umodel.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="æ°é" min-width="100px"> |
| | | <el-table-column prop="unqualifiedNum" label="ä¸è¯æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span :class="row.materialDonetype==0 ? 'valid-style' : 'unvalid-style'">{{ row.num + row.umodel.name }}</span> |
| | | <span class="unvalid-style">{{ row.num + row.umodel.name}}</span> |
| | | <!-- <span :class="row.materialDonetype==0 ? 'valid-style' : ''">{{ row.num + row.umodel.name }}</span> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="æ¥å·¥æ°é" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
å¨å
·" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="deviceCode" label="设å¤" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="procedureName" label="ç产åå·¥" min-width="100px"></el-table-column> |
| | | <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="100px"> |
| | | <!-- <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.doneType==0" class="valid-style">åæ ¼</span> |
| | | <span v-else-if="row.doneType==1" class="unvalid-style">ä¸è¯</span> |
| | |
| | | <template slot-scope="{row}"> |
| | | <span :class="row.doneType==0 ? 'valid-style' : (row.doneType==1 ? 'unvalid-style' : (row.doneType==2 ? 'scrap-style' : ''))">{{ row.num + row.umodel.name }}</span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="qualifiedNum" label="åæ ¼æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="valid-style">{{ row.qualifiedNum + row.umodel.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unqualifiedNum" label="ä¸è¯æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="unvalid-style">{{ row.unqualifiedNum + row.umodel.name}}</span> |
| | | <!-- <span :class="row.materialDonetype==0 ? 'valid-style' : ''">{{ row.num + row.umodel.name }}</span> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="æ¥å·¥æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.num + row.umodel.name}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
å¨å
·" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="deviceCode" label="设å¤" show-overflow-tooltip min-width="100px"> |