platform_web/src/components/system/permission/OperaPermissionWindow.vue
@@ -26,6 +26,12 @@ name: 'OperaPermissionWindow', extends: BaseOpera, components: { GlobalWindow }, props: { type: { type: Number|String, default: 0 } }, data () { return { // åæéç @@ -58,6 +64,7 @@ this.$nextTick(() => { this.$refs.form.resetFields() this.form[this.configData['field.id']] = null this.form.type = this.type }) return } @@ -67,6 +74,7 @@ for (const key in this.form) { this.form[key] = target[key] } this.form.type = this.type }) }, confirm () { platform_web/src/views/system/permission.vue
@@ -60,7 +60,7 @@ ></pagination> </template> <!-- æ°å»º/ä¿®æ¹ --> <OperaPermissionWindow ref="operaPermissionWindow" @success="handlePageChange"/> <OperaPermissionWindow ref="operaPermissionWindow" :type="0" @success="handlePageChange"/> </TableLayout> </template> platform_web/src/views/system/permissionCom.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ <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> web_standard/.env.development
@@ -21,5 +21,8 @@ # ç¦æ¾ 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/' web_standard/coderd.json
@@ -4,7 +4,7 @@ "alias": "eva", "command": "page", "option": { "resources": "workorder_check_attr_ext" "resources": "salary_param" } } } web_standard/src/api/business/salaryParam.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ 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 } }) } web_standard/src/api/ext/salaryStatistic.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ 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 }) } web_standard/src/api/ext/userSalary.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ 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 }) } web_standard/src/components/business/OperaSalaryParamWindow.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,229 @@ <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> web_standard/src/components/ext/OperaWorkorderDetailWindow.vue
@@ -1,28 +1,23 @@ <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"> <span class="text-code">{{ form.procedureName + ' | ' + form.mmodel.name + ' ' + form.mmodel.code }}</span> <!-- 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-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-if="form.status==3" style="background-color: #BBBBBB;" class="status-log">已忶</span> --> </div> <el-form-item label="å·¥åç¼å·" prop="workorderCode" class="count-style" > <el-form-item label="å·¥åç¼å·" prop="workorderCode" class="count-style"> {{ form.code }} </el-form-item> <el-form-item label="çäº§æ¥æ" prop="proTime" class="count-style" > <el-form-item label="çäº§æ¥æ" prop="proTime" class="count-style"> {{ form.planDate }} </el-form-item> <el-form-item label="çäº§æ¹æ¬¡å·" prop="batch" class="count-style" > <el-form-item label="çäº§æ¹æ¬¡å·" prop="batch" class="count-style"> {{ form.batch }} </el-form-item> <!-- <el-form-item label="计å人å" prop="planUser" class="count-style" > @@ -31,8 +26,8 @@ <el-form-item label="è®¡åæ¥æ" prop="planDate" class="count-style" > {{ form.pmodel.createTime }} </el-form-item> --> <el-form-item label="ç产æ°é" prop="machine" class="count-style" > {{ form.planNum ? (form.planNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} <el-form-item label="ç产æ°é" prop="machine" class="count-style"> {{ form.planNum ? (form.planNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} </el-form-item> <!-- <el-form-item label="è®¡åæ°é" prop="planNum" class="count-style" > {{ form.pmodel.num }} @@ -43,42 +38,36 @@ <!-- <el-form-item label="å叿¥æ" prop="startDate" class="count-style" > {{ form.pmodel.publishDate }} </el-form-item> --> <el-form-item label="åå·¥åå·" prop="originWorkorderId" class="count-style" > <el-form-item label="åå·¥åå·" prop="originWorkorderId" class="count-style"> {{ form.originWorkorderId }} </el-form-item> <el-form-item label="åé 人å" prop="distributeUser" class="count-style" > <el-form-item label="åé 人å" prop="distributeUser" class="count-style"> {{ form.userName }} </el-form-item> <el-form-item label="åé æ¶é´" prop="distributeTime" class="count-style" > <el-form-item label="åé æ¶é´" prop="distributeTime" class="count-style"> {{ form.createTime }} </el-form-item> <el-form-item label="ç产人å" prop="proUser" class="count-style" > <el-form-item label="ç产人å" prop="proUser" class="count-style"> <div v-for="(item, index) in form.proUserList" :key="index">{{ item.proUserDepartName }}</div> <!-- {{ form.proUserName + (form.proUserDepartName ? ('/' + form.proUserDepartName) : '') }} --> </el-form-item> <el-form-item label="ç产设å¤" prop="machine" class="count-style" > {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}`}} <el-form-item label="ç产设å¤" prop="machine" class="count-style"> {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}` }} </el-form-item> <el-form-item label="åæ ¼æ°é" prop="qualifiedNum" class="count-style" > <el-form-item label="åæ ¼æ°é" prop="qualifiedNum" class="count-style"> {{ form.qualifiedNum ? (form.qualifiedNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} </el-form-item> <el-form-item label="ä¸è¯æ°é" prop="unqualifiedNum" class="count-style" > <el-form-item label="ä¸è¯æ°é" prop="unqualifiedNum" class="count-style"> {{ form.unqualifiedNum ? (form.unqualifiedNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} </el-form-item> </el-form> <!-- è¡¨æ ¼åå页 --> <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" > <!-- stripe --> <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"> <template slot-scope="{row}"> @@ -86,11 +75,27 @@ </template> </el-table-column> <el-table-column prop="machine" label="ç产设å¤" min-width="100px"> {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}`}} {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}` }} </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> @@ -102,15 +107,11 @@ <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> @@ -138,30 +139,23 @@ </el-table-column> <el-table-column prop="devmodel.code" label="ç产设å¤" min-width="100px"> <template slot-scope="{row}"> {{ row.devmodel && `ã${row.devmodel.code}ã${row.devmodel.name}`}} {{ row.devmodel && `ã${row.devmodel.code}ã${row.devmodel.name}` }} </template> </el-table-column> <!-- <el-table-column prop="proUserids" label="ç产人å" show-overflow-tooltip 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-column prop="promodel.name" label="å·¥åºåç§°" min-width="100px"></el-table-column> <el-table-column 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.materialDonetype==2" class="scrap-style">æ¥åº</span> <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.materialDonetype == 2" class="scrap-style">æ¥åº</span> <span v-else>-</span> </template> </el-table-column> @@ -178,12 +172,7 @@ </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> @@ -203,12 +192,8 @@ <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"> @@ -229,7 +214,7 @@ name: 'OperaWorkorderDetailWindow', extends: BaseOpera, components: { GlobalWindow, Pagination }, data () { data() { return { // è¡¨åæ°æ® form: { @@ -287,7 +272,7 @@ } }, inject: ['origins'], created () { created() { this.config({ api: '/ext/materialExt', 'field.id': 'id' @@ -302,39 +287,39 @@ // }) }, methods: { open (title, target) { open(title, target) { this.title = title this.visible = true this.activeName = 'first', // ç¼è¾ this.$nextTick(() => { for (const key in this.form) { this.form[key] = target[key] } // console.log('this.form', this.form) workorderRecordExtPage( { capacity: this.pagination.pageSize, model: { type: 1, workorderId: this.form.id }, page: this.pagination.pageIndex, sorts: null }) .then(res => { // console.log(res) this.report = res.records this.pagination.pageIndex = res.page this.pagination.total = res.total this.pagination.pageSize = res.capacity }) .catch(err => { console.log(err) }) }) // ç¼è¾ this.$nextTick(() => { for (const key in this.form) { this.form[key] = target[key] } // console.log('this.form', this.form) workorderRecordExtPage( { capacity: this.pagination.pageSize, model: { type: 1, workorderId: this.form.id }, page: this.pagination.pageIndex, sorts: null }) .then(res => { // console.log(res) this.report = res.records this.pagination.pageIndex = res.page this.pagination.total = res.total this.pagination.pageSize = res.capacity }) .catch(err => { console.log(err) }) }) }, cancel () { cancel() { this.$refs.form.resetFields() this.activeName = 'first' this.pagination.pageIndex = 1 @@ -342,21 +327,21 @@ this.pagination.total = 0 this.visible = false }, statusToStr (status) { statusToStr(status) { for (const item of this.status) { if (item.id === status) { return item.name } } }, originToStr (id) { originToStr(id) { for (const item of this.origins()) { if (item.id === id) { return item.code } } }, columnStyle ({ row, column, rowIndex, columnIndex }) { columnStyle({ row, column, rowIndex, columnIndex }) { if (rowIndex % 2 === 0) { // ä¿®æ¹æ¯è¡ç¬¬ä¸ä¸ªåå æ ¼çèæ¯è² return 'background:#f3f6fc;' @@ -364,22 +349,22 @@ return 'background:#ffffff;' } }, handleClick (tab, event) { handleClick(tab, event) { this.pagination.pageIndex = 1 this.pagination.pageSize = 10 this.pagination.total = 0 this.search() }, handleSizeChange (pageSize) { handleSizeChange(pageSize) { this.pagination.pageSize = pageSize this.search() }, handlePageChange (pageIndex) { handlePageChange(pageIndex) { this.pagination.pageIndex = pageIndex // console.log('è·åæ°æ®') this.search() }, search () { search() { if (this.activeName === 'first') { workorderRecordExtPage( { @@ -389,7 +374,7 @@ workorderId: this.form.id }, page: this.pagination.pageIndex, sorts: [{direction: "DESC", property: "CREATE_TIME"}] sorts: [{ direction: "DESC", property: "CREATE_TIME" }] }) .then(res => { // console.log(res) @@ -408,7 +393,7 @@ workorderId: this.form.id }, page: this.pagination.pageIndex, sorts: [{direction: "DESC", property: "CREATE_TIME"}] sorts: [{ direction: "DESC", property: "CREATE_TIME" }] }) .then(res => { // console.log(res.records) @@ -429,7 +414,7 @@ workorderId: this.form.id }, page: this.pagination.pageIndex, sorts: [{direction: "DESC", property: "CREATE_TIME"}] sorts: [{ direction: "DESC", property: "CREATE_TIME" }] }) .then(res => { // console.log(res) @@ -449,7 +434,7 @@ workorderId: this.form.id }, page: this.pagination.pageIndex, sorts: [{direction: "DESC", property: "CREATE_TIME"}] sorts: [{ direction: "DESC", property: "CREATE_TIME" }] }) .then(res => { // console.log(res) @@ -463,7 +448,7 @@ }) } }, getPutSummaries (param) { getPutSummaries(param) { const { columns, data } = param; const sums = []; columns.forEach((column, index) => { @@ -476,7 +461,7 @@ } else if (index === 5) { sums[index] = '-'; return; } } const values = data.map(item => Number(item[column.property])); if (!values.every(value => isNaN(value))) { sums[index] = 0 @@ -489,15 +474,12 @@ }); return sums }, getReportSummaries (param) { getReportSummaries(param) { const { columns, data } = param; const sums = []; columns.forEach((column, index) => { if (index === 0) { sums[index] = 'å计'; return; } else if (index === 4) { sums[index] = '-'; return; } const values = data.map(item => Number(item[column.property])); @@ -522,21 +504,24 @@ width: 23%; // height: 32px; } ::v-deep .el-form-item { margin-bottom: 8px !important; } .text-code { color: #333; font-weight: 500; padding-right: 15px; font-size: 15px; vertical-align:middle; vertical-align: middle; } .status-log { padding: 1px 5px; border-radius: 3px; font-size: 12px; color:#fff; vertical-align:middle; color: #fff; vertical-align: middle; } </style> web_standard/src/components/ext/OrderDistrubution.vue
@@ -109,9 +109,12 @@ 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) web_standard/src/components/ext/addProcesRoute.vue
ÎļþÒÑɾ³ý web_standard/src/views/business/salaryParam.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,142 @@ <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> web_standard/src/views/business/workPlans.vue
@@ -109,16 +109,15 @@ <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> web_standard/src/views/ext/salaryStatistic.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,182 @@ <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> web_standard/src/views/ext/userSalary.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,201 @@ <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> web_standard/src/views/ext/workingorderExt.vue
@@ -282,7 +282,7 @@ status: '', mixParam: '', pgmodelId: '', statusList: [0,1,2,3] statusList: [0,1,2,3,7] }, origins: [], types: [ @@ -307,7 +307,7 @@ { name: 'å·²æ£éª', id: 3 }, // { name: 'å·²æ¥å·¥', id: 4 }, // { name: 'å·²å ¥åº', id: 5 }, // { name: '已忶', id: 6 } { name: 'ç产ä¸', id: 7 } ], productes: [ ], web_standard/src/views/ext/workorderPutRecordExt.vue
@@ -120,19 +120,18 @@ <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}"> web_standard/src/views/ext/workorderRecordExt.vue
@@ -112,7 +112,7 @@ </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> @@ -124,6 +124,22 @@ <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">