src/api/zlgl.js
@@ -132,3 +132,28 @@ }) } // å·¥åºæ£éªè®°å½å表æ¥è¯¢ export function StepCheckTableSearch(data) { return request({ url: 'QualityManagement/StepCheckTableSearch', method: 'get', params: data }) } // å·¥åºæ£éªè®°å½å表æ¥è¯¢ export function StepCheckTableSubSearch(data) { return request({ url: 'QualityManagement/StepCheckTableSubSearch', method: 'get', params: data }) } // å·¥åºæ£éªè®°å½å¯¼åº export function StepCheckTableOutExcel(data) { return request({ url: 'QualityManagement/StepCheckTableOutExcel', method: 'get', params: data }) } src/router/index.js
@@ -474,6 +474,12 @@ code: '1086', component: () => import('@/views/zlgl/gxjyxm'), meta: { code: '1086', title: 'å·¥åºæ£éªé¡¹ç®', icon: '', keepAlive: true } }, { path: 'gxjyjl', name: 'GXJYJLCancel', code: '1087', component: () => import('@/views/zlgl/gxjyjl'), meta: { code: '1087', title: 'å·¥åºæ£éªè®°å½', icon: '', keepAlive: true } } ] }, src/views/jcsz/jsqd.vue
@@ -2,10 +2,13 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-setting" @click="settingButton">设置</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> <div style="display: flex"> <el-button icon="el-icon-setting" @click="settingButton">设置</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> </div> <div class="bodyTopFormGroup"> src/views/jcsz/wldw.vue
@@ -2,14 +2,16 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-refresh-right" @click="syncSeaveSearchPartner" >忥徿¥åä½ </el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> <div style="display: flex"> <el-button icon="el-icon-refresh-right" @click="syncSeaveSearchPartner" >忥徿¥åä½ </el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> </div> <div class="bodyTopFormGroup"> src/views/jcsz/yhqd.vue
@@ -1,10 +1,14 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-menu" @click="workingTramClick">ç产çç»</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> <div style="display: flex"> <el-button icon="el-icon-menu" @click="workingTramClick">ç产çç»</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> </div> <div class="bodyTopFormGroup"> src/views/sbgl/bybw.vue
@@ -1,7 +1,7 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> @@ -114,8 +114,12 @@ > <template slot-scope="{row}"> <div class="operationClass"> <el-button type="text" @click="edit('edit',row)">ç¼è¾</el-button> <el-button type="text" @click="del(row)">å é¤</el-button> <el-tooltip class="item" effect="dark" content="ç¼è¾" placement="top"> <i class="el-icon-edit-outline" @click="edit('edit',row)" /> </el-tooltip> <el-tooltip v-del-tab-index class="item" effect="dark" content="å é¤" placement="top"> <i class="el-icon-delete" @click="del(row)" /> </el-tooltip> </div> </template> </el-table-column> src/views/sbgl/djbw.vue
@@ -1,7 +1,7 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> src/views/sbgl/djbz.vue
@@ -1,7 +1,7 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> @@ -61,31 +61,52 @@ label="åºå·" /> <el-table-column prop="org_code" prop="code" label="æ åç¼ç " sortable="custom" /> <el-table-column prop="org_name" prop="name" label="æ ååç§°" sortable="custom" /> <el-table-column prop="parentorg_name" prop="description" label="æ åæè¿°" sortable="custom" /> <el-table-column prop="parentorg_name" prop="iscontr" label="ç¹æ£ç®¡æ§" sortable="custom" /> > <template slot-scope="{row}"> <div v-if="row.iscontr==='Y'"> <svg-icon icon-class="circleYes" style="margin-right: 2px" /> æ¯ </div> <div v-if="row.iscontr==='N'"> <svg-icon icon-class="circleNo" style="margin-right: 2px" /> å¦ </div> </template> </el-table-column> <el-table-column prop="parentorg_name" prop="is_checkeqp" label="å ³è设å¤" sortable="custom" /> > <template slot-scope="{row}"> <i v-if="row.is_checkeqp==='Y'" class="el-icon-share" @click="checkeqpClick(row)" /> <i v-if="row.is_checkeqp==='N'" class="el-icon-share" style="color: rgb(180 ,181, 185)" @click="checkeqpClick(row)" /> </template> </el-table-column> <el-table-column prop="lm_user" label="å建人å" @@ -99,11 +120,17 @@ /> <el-table-column label="æä½" fixed="right" width="120" > <template slot-scope="{row}"> <div class="operationClass"> <el-button type="text" @click="edit('edit',row)">ç¼è¾</el-button> <el-button type="text" @click="del(row)">å é¤</el-button> <el-tooltip class="item" effect="dark" content="ç¼è¾" placement="top"> <i class="el-icon-edit-outline" @click="edit('edit',row)" /> </el-tooltip> <el-tooltip v-del-tab-index class="item" effect="dark" content="å é¤" placement="top"> <i class="el-icon-delete" @click="del(row)" /> </el-tooltip> </div> </template> </el-table-column> @@ -241,7 +268,7 @@ label="éæ©æ«ç " > <template slot-scope="{row}"> <div v-if="row.isVisible===0">{{ row.isscan==='Y'?'æ¯':'å¦' }}</div> <div v-if="row.isVisible===0">{{ row.isscan === 'Y' ? 'æ¯' : 'å¦' }}</div> <el-select v-if="row.isVisible===1" v-model="row.isscan" @@ -261,7 +288,7 @@ label="ç¹æ£å¨æ" > <template slot-scope="{row}"> <div v-if="row.isVisible===0">{{ row.cycle==='D'?'æ¥':'' }}</div> <div v-if="row.isVisible===0">{{ row.cycle === 'D' ? 'æ¥' : '' }}</div> <el-select v-if="row.isVisible===1" v-model="row.cycle" @@ -301,6 +328,74 @@ </span> </el-dialog> <!-- å ³è设å¤--> <el-dialog title="å ³è设å¤" :visible.sync="dialogVisibleEqp" width="800px" top="10vh" :close-on-click-modal="false" class="dialogVisibleEqp" @closed="handleCloseEqp" @close="handleCloseEqp" > <!-- @opened="handleOpenedRoles"--> <div> <i class="el-icon-s-comment" style="color:#42b983;" /> æ ååç§°ï¼{{ dialogFormEqp.name }} </div> <el-divider /> <div> <div style="margin-bottom:20px"> <i class="el-icon-s-operation" style="color:#42b983;" /> è®¾å¤æå±è½¦é´éåï¼ </div> <div class="myCheckboxGroup"> <div v-for="item in dialogFormEqp.eqpArr" :key="item.code" :style="{border:item.isSelected1?'1px solid #42b983':'1px solid #eee'}" class="myCheckbox" @click="myCheckboxClick(item)" > <input class="myCheckboxInput" type="checkbox" :value="item.code" :name="item.name" :style="{color:item.isSelected2?'#42b983':'#fff'}" @click="myCheckboxInputClick(item)" >{{ item.name }} <!-- ç¶åç¹å»äºä»¶ä¸å½±å--> <!-- onClick="event.cancelBubble = true"--> </div> </div> </div> <el-divider /> <div> <div style="margin-bottom:20px"> <i class="el-icon-s-operation" style="color:#42b983;" /> è§è²ï¼ </div> <el-tree ref="roleTree" :data="dialogFormEqp.eqpTree" show-checkbox node-key="code" default-expand-all style="height: 300px" :props="defaultPropsOfEqpTree" @check="checkBoxClick" /> <!-- @check-change="checkChange"--> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="eqpDialogVisibleCancel">å æ¶</el-button> <el-button type="primary" @click="eqpDialogVisibleConfirm">ç¡® å®</el-button> </div> </span> </el-dialog> <!--å¯¼å ¥ç»ä»¶--> <import-picker ref="importPickerFunc" @@ -319,7 +414,12 @@ import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import ImportPicker from '@/components/ImportPicker' import { AddUpdateDeviceCheckStandArd, DeviceCheckItemSelect, DeviceCheckStandArdSearch } from '@/api/sbgl' import { AddUpdateDeviceCheckStandArd, DeviceCheckItemSelect, DeviceCheckStandArdSearch, ViewDeviceCheckStanedSearch } from '@/api/sbgl' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { @@ -390,6 +490,19 @@ tableDataDialog: [], // è¡¨æ ¼æ°æ® tableDataDialogSelected: [], // å·²écode checkItemSelectArr: [], dialogVisibleEqp: false, dialogFormEqp: { name: '', eqpArr: [], eqpTree: [] }, defaultPropsOfEqpTree: { value: 'code', label: 'name', children: 'children' }, title_value: 'æ°æ®å¯¼å ¥ / ç¹æ£é¨ä½', code: '4', @@ -475,9 +588,10 @@ this.$refs.tableDataDialogRef.doLayout() }) this.$nextTick(() => { this.dialogForm.OrgCode = row.org_code this.dialogForm.OrgName = row.org_name this.dialogForm.SupUnit = row.parent_id this.dialogForm.code = row.code this.dialogForm.name = row.name this.dialogForm.enable = row.enable this.dialogForm.description = row.description }) }, // å é¤æé® @@ -497,6 +611,10 @@ this.$message.info('已忶å é¤') }) }, // ä¿®æ¹åè¯·æ±æ¥å£ // async getViewDeviceCheckStanedSearch(checkstand_code) { // const { data: res } = await ViewDeviceCheckStanedSearch() // }, // å¯¹è¯æ¡å ³éäºä»¶ handleClose() { this.dialogForm.code = '' @@ -545,16 +663,22 @@ }, selectChange(val, row) { row.checkitem_descr = this.checkItemSelectArr.find(item => { const res = this.checkItemSelectArr.find(item => { return item.code === val || item.name === val }).description row.checkitem_code = this.checkItemSelectArr.find(item => { return item.code === val || item.name === val }).code row.checkitem_name = this.checkItemSelectArr.find(item => { return item.code === val || item.name === val }).name }) row.checkitem_descr = res.description row.checkitem_code = res.code row.checkitem_name = res.name // row.checkitem_descr = this.checkItemSelectArr.find(item => { // return item.code === val || item.name === val // }).description // // row.checkitem_code = this.checkItemSelectArr.find(item => { // return item.code === val || item.name === val // }).code // row.checkitem_name = this.checkItemSelectArr.find(item => { // return item.code === val || item.name === val // }).name }, // æ°å¢è¡ addRow() { @@ -619,7 +743,6 @@ console.log(this.tableDataDialog) }, cancelRow(row) { console.log(row, 111) this.tableDataDialog.forEach((item, index) => { if (item.checkitem_code === row.checkitem_code && item.isVisible === 1) { console.log(item) @@ -637,6 +760,30 @@ }, tableRowClassName({ row, rowIndex }) { return 'custom-row' }, // å ³èè®¾å¤ checkeqpClick(row) { this.dialogVisibleEqp = true }, handleCloseEqp() { }, // 大çåç¹å» myCheckboxClick() { }, // å°çåç¹å» myCheckboxInputClick() { }, checkBoxClick() { }, eqpDialogVisibleCancel() { this.dialogVisibleEqp = false }, eqpDialogVisibleConfirm() { this.dialogVisibleEqp = false } } } @@ -645,6 +792,67 @@ <!--å ¬å ±é¡µé¢æ ·å¼--> <style lang="scss" scoped> $main_color: #42b983; .dialogVisibleEqp { .myCheckboxGroup { display: flex; flex-wrap: wrap; .myCheckbox { //border: 1px solid $main_color; border: 1px solid #eee; display: flex; min-width: 100px; padding: 10px; margin: 10px 30px 0 0; border-radius: 5px; cursor: default; .myCheckboxInput { margin: 1px 5px 0 0; cursor: pointer; } } //.myCheckbox{ // border: 1px solid $main_color; //} input[type=checkbox] { cursor: pointer; position: relative; width: 14px; height: 14px; font-size: 14px; } input[type=checkbox]::after { position: absolute; top: 0; //color: rgb(130, 35, 35); color: $main_color; width: 14px; height: 14px; display: inline-block; visibility: visible; padding-left: 0px; text-align: center; content: ' '; border-radius: 3px } input[type=checkbox]:checked::after { //content: "â"; content: "â"; color: #fff; font-size: 12px; font-weight: bold; background-color: $main_color; } } } ::v-deep .el-button--text { font-size: 14px; cursor: pointer; @@ -740,7 +948,8 @@ .userDialogVisible ::v-deep .el-form-item { margin-bottom: 0; } ::v-deep .el-select__caret{ ::v-deep .el-select__caret { display: flex; align-items: center; justify-content: center; src/views/sbgl/sbqd.vue
@@ -2,10 +2,13 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-c-scale-to-original" @click="deviceTypeButton">设å¤ç±»å</el-button> <el-button icon="el-icon-document-copy" @click="deviceGroupButton">设å¤ç»</el-button> <div style="display: flex"> <el-button icon="el-icon-c-scale-to-original" @click="deviceTypeButton">设å¤ç±»å</el-button> <el-button icon="el-icon-document-copy" @click="deviceGroupButton">设å¤ç»</el-button> </div> <!-- <el-button type="primary" icon="el-icon-upload2" @click="upload">å¯¼å ¥</el-button>--> </div> src/views/scgl/gd.vue
@@ -2,9 +2,12 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button type="primary" icon="el-icon-connection" @click="send('send')">æ´¾å</el-button> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <div style="display: flex"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button type="primary" icon="el-icon-connection" @click="send('send')">æ´¾å</el-button> </div> <el-button icon="el-icon-switch-button" @click="orderClose">å·¥åå ³é</el-button> </div> @@ -37,6 +40,24 @@ <el-form-item label="订åç¼å·" style=" display: flex;"> <el-input v-model="form.mesordercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="æºååå·" style="display: flex;"> <el-input v-model="form.sourceorder" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="åæ®ç±»å" style=" display: flex;"> <el-select v-model="form.ordertype" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" > <!-- @change="mesordertypeChange"--> <el-option v-for="item in ordertypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <!-- <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©">--> <!-- <el-option--> @@ -157,6 +178,24 @@ min-width="160" /> <el-table-column prop="m_po" label="æºååå·" sortable="custom" min-width="160" /> <el-table-column prop="wotype" label="åæ®ç±»å" sortable="custom" min-width="120" > <template slot-scope="{row}"> <div v-if="row.wotype==='PO'">æ åå·¥å</div> <div v-else-if="row.wotype==='FO'">æ¥åºè¡¥å</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="partcode" label="产åç¼ç " sortable="custom" @@ -263,7 +302,11 @@ <template slot-scope="{row}"> <div class="operationClass"> <el-tooltip class="item" effect="dark" content="å·¥åºä»»å¡" placement="top"> <i class="el-icon-tickets" style="cursor: pointer;color: #42b983;margin-right: 15px" @click="check(row)" /> <i class="el-icon-tickets" style="cursor: pointer;color: #42b983;margin-right: 15px" @click="check(row)" /> </el-tooltip> <el-tooltip v-del-tab-index class="item" effect="dark" content="å é¤" placement="top"> <i class="el-icon-delete" @click="del(row)" /> @@ -325,6 +368,41 @@ <el-form-item label="å·¥åç¼å·" prop="mesordercode"> <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" /> </el-form-item> <div style="display: flex"> <el-form-item label="å·¥åç±»å" prop="mesorderstus"> <el-select v-model="dialogForm.ordertype" :popper-append-to-body="false" style="width: 200px" :disabled="operation!=='add'" placeholder="è¯·éæ©" > <!-- @change="mesordertypeChange"--> <el-option v-for="item in ordertypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <div style="display: flex;flex-wrap: nowrap"> <el-form-item label="æºååå·"> <el-input v-model="dialogForm.sourceorder" :disabled="dialogForm.ordertype==='PO'" style="width: 172px" /> </el-form-item> <el-button type="primary" style="padding: 0 10px;margin-left: -8px;margin-top: 3px" class="el-icon-search" :disabled="operation!=='add'" @click="mesordertsourcesearchclick" /> </div> </div> <el-form-item label="工忰é" prop="mesqty"> <el-input v-model="dialogForm.mesqty" @@ -386,7 +464,7 @@ </el-form-item> <el-button type="primary" style="padding: 0 10px;margin-left: -8px;margin-top: 5px" style="padding: 0 10px;margin-left: -8px;margin-top:3px" class="el-icon-search" @click="searchClick" /> @@ -509,7 +587,7 @@ </span> </el-dialog> <!-- å·¥åºä»»å¡å¯¹è¯æ¡--> <!-- å·¥åºä»»å¡å¯¹è¯æ¡--> <el-dialog title="å·¥åºä»»å¡" :visible.sync="dialogVisibleTask" @@ -523,7 +601,8 @@ style="margin-bottom: 15px" type="primary" @click="supplementClick" >è¡¥æ</el-button> >è¡¥æ </el-button> <el-table :data="taskTableData" border @@ -596,6 +675,298 @@ </span> </el-dialog> <!-- æºååå·å¯¹è¯æ¡--> <el-dialog title="æºååå·" :visible.sync="dialogVisibleSource" width="1200px" top="5vh" class="dialogVisibleSearch" :close-on-click-modal="false" @close="dialogVisibleSourceClose" > <div class="bodyTopFormGroup"> <el-form ref="sourceForm" :model="sourceForm" label-width="100px" inline style="display: flex;justify-content: space-between" > <div class="elForm"> <el-form-item label="订åç¶æ" style=" display: flex;"> <el-select v-model="sourceForm.erporderstus" filterable :popper-append-to-body="false" style="width: 200px" placeholder="è¯·éæ©" > <el-option v-for="item in erporderstusArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="订åç¼å·" style=" display: flex;"> <el-input v-model="sourceForm.erpordercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpand" label="产ååç§°" style=" display: flex;"> <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpand" label="产åè§æ ¼" style=" display: flex;"> <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpand" label="å建人å" style=" display: flex;"> <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item v-show="isExpand" label="é¢è®¡å¼å·¥æ¶é´" label-width="100px" style=" display: flex;font-size: 14px;margin-top: 3px" > <el-date-picker v-model="sourceForm.paystartdate" type="daterange" range-separator="~" class="timeMini" size="mini" style="width: 250px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;" :clearable="false" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" /> <!-- :picker-options="expireTimeOption"--> </el-form-item> <el-form-item v-show="isExpand" label="é¢è®¡å®å·¥æ¶é´" label-width="100px" style=" display: flex;font-size: 14px;margin-top: 3px" > <el-date-picker v-model="sourceForm.payenddate" type="daterange" :clearable="false" class="timeMini" range-separator="~" start-placeholder="å¼å§æ¥æ" style="width: 250px;display: flex;line-height: 34px ;height: 34px ;font-size: 14px !important;" end-placeholder="ç»ææ¥æ" size="mini" /> </el-form-item> </div> <div> <div style="display: flex;align-items: start;margin-top: 5px;z-index: 2;justify-content: end"> <el-button type="primary" icon="el-icon-search" @click="sourceSearch">æ¥è¯¢</el-button> <el-button type="info" icon="el-icon-refresh" @click="sourceReset">éç½®</el-button> </div> </div> </el-form> </div> <el-tooltip :content="!isExpand?'ç¹å»å±ç¤ºæ´å¤':'æ¶èµ·'" placement="bottom"> <div style="display:flex;justify-content: center; align-items:center;background-color:#eee;cursor: pointer" @click="isExpand=!isExpand" > <i :class="!isExpand?'el-icon-arrow-down':'el-icon-arrow-up'" :style="{color:'#42B983'}" /></div> </el-tooltip> <div class="elTableDiv"> <el-table :data="sourceTableData" :height="(tableHeight-100)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:(tableHeight-100)+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sourceSortChange" > <!-- <el-table-column--> <!-- type="selection"--> <!-- width="50"--> <!-- />--> <el-table-column width="50" fixed > <template slot-scope="{row}"> <el-radio v-model="radioSelectedId" :label="row.id" style="color: transparent;padding-left: 15px; margin-right: -25px;" @change.native="getCurrentRowSource(row.id)" /> </template> </el-table-column> <el-table-column prop="RowNum" width="50" fixed label="åºå·" /> <el-table-column prop="status" label="订åç¶æ" sortable="custom" width="110" > <template slot-scope="{row}"> <div v-if="row.status==='NEW'">æ°è®¢å</div> <div v-if="row.status==='CREATING'">é¨åä¸è¾¾</div> <div v-if="row.status==='CREATED'">å ¨é¨ä¸è¾¾</div> <div v-if="row.status==='CLOSED'">å·²å ³é</div> </template> </el-table-column> <el-table-column prop="wo" label="订åç¼å·" sortable="custom" min-width="150" /> <el-table-column prop="partcode" label="产åç¼ç " sortable="custom" min-width="150" /> <el-table-column prop="partname" label="产ååç§°" sortable="custom" min-width="150" /> <el-table-column prop="partspec" label="产åè§æ ¼" sortable="custom" min-width="110" > <template slot-scope="{row}"> <div v-if="row.partspec">{{ row.partspec }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="qty" label="è®¢åæ°é" width="150" sortable="custom" /> <el-table-column prop="relse_qty" label="å·²ä¸åæ°é" width="150" sortable="custom" /> <el-table-column prop="wkshp_name" label="ç产车é´" sortable="custom" width="150" > <template slot-scope="{row}"> <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="planstartdate" label="é¢è®¡å¼å·¥æ¶é´" sortable="custom" width="130" > <template slot-scope="{row}"> <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="planenddate" label="é¢è®¡å®å·¥æ¶é´" sortable="custom" width="130" > <template slot-scope="{row}"> <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="createuser" label="å建人å" sortable="custom" width="150" > <template slot-scope="{row}"> <div v-if="row.createuser">{{ row.createuser }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="createdate" label="å建æ¶é´" width="130" sortable="custom" > <template slot-scope="{row}"> <div v-if="row.createdate">{{ row.createdate.substring(0, 11) }}</div> <div v-else>/</div> </template> </el-table-column> <!-- <el-table-column--> <!-- label="æä½"--> <!-- fixed="right"--> <!-- width="80"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div class="operationClass">--> <!-- <el-tooltip class="item" effect="dark" content="ä¸è¾¾" placement="top">--> <!-- <!– <el-button type="text" @click="edit('edit',row)">ä¸è¾¾</el-button>–>--> <!-- <i--> <!-- class="el-icon-bottom"--> <!-- style="color:#42b983;cursor: pointer;margin-left: 5px"--> <!-- @click="edit('edit',row)"--> <!-- />--> <!-- </el-tooltip>--> <!-- </div>--> <!-- </template>--> <!-- </el-table-column>--> </el-table> </div> <!--å页--> <pagination :total="sourceFormTotal" :page.sync="sourceForm.page" :limit.sync="sourceForm.rows" align="right" layout="total,prev, pager, next,sizes" popper-class="select_bottom" @pagination="getErpOrderSearch" /> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button @click="dialogVisibleSourceBack">è¿ å</el-button> <el-button type="primary" @click="dialogVisibleSourceConfirm">ç¡® å®</el-button> </div> </span> </el-dialog> <!--æå°é¢è§å¯¹è¯æ¡ 大æ ç¾--> <el-dialog title="" @@ -622,6 +993,9 @@ <div class="elForm"> <el-form-item label="å·¥åç¼å·ï¼" class="formContent"> {{ formApprove.mesordercode }} </el-form-item> <el-form-item label="æºååå·ï¼" class="formContent"> {{ formApprove.m_po }} </el-form-item> <el-form-item label="产åç¼ç ï¼" class="formContent"> {{ formApprove.partcode }} @@ -658,7 +1032,9 @@ <!-- <div id="qrCode0" ref="qrCodeDiv0" />--> </div> <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" /> <div style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px" /> <div style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px" /> </div> <!-- <div style="width:100%;height: 30px;border-bottom: 1px solid #eee;margin-bottom: 20px" />--> @@ -758,7 +1134,9 @@ > <div id="qrCode2" ref="qrCodeDiv2" style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" /> </div> <div style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"> <div style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" > <div style="margin-left: 5px;width: 28px">æ°é:</div> {{ qrForm.startqty }} </div> @@ -818,7 +1196,7 @@ import { AddUpdateMesOrder, ClosedMesOrder, DeleteMesOrder, DeleteMesOrder, ErpOrderSearch, MesOrderSearch, PartSelectRoute, RouteSelectWkshop, SearchWorkStep, SelectRouteStep } from '@/api/scgl' @@ -856,6 +1234,8 @@ mesorderstus: '', // å·¥åç¶æç mesordercode: '', // å·¥åç¼å· partcode: '', // 产åç¼ç ordertype: '', // ordertype sourceorder: '', // æºååå· partname: '', // 产ååç§° partspec: '', // 产åè§æ ¼ creatuser: '', // å建人å @@ -886,6 +1266,9 @@ mesorderstus: 'NEW', // å·¥åç¶æç mesordercode: '', // å·¥åç¼å· partcode: '', // 产åç¼ç ordertype: 'PO', // å·¥åç±»å sourceorder: '', // æºååå· mesqty: '', // 工忰é routecode: '', // å·¥èºè·¯çº¿ç¼ç @@ -896,6 +1279,10 @@ OperType: '' // æä½ç±»å }, ordertypeArr: [// å·¥åç±»å { code: 'PO', name: 'æ åå·¥å' }, { code: 'FO', name: 'æ¥åºè¡¥å' } ], partArr: [], // 产åä¿¡æ¯ wkshopArr: [], // çäº§è½¦é´æ°ç» routeArr: [], // å·¥èºè·¯çº¿æ°ç» @@ -964,6 +1351,7 @@ }, formApprove: { m_po: '', // æºååå· mesordercode: '', partcode: '', partname: '', @@ -1004,7 +1392,28 @@ nextstepname: '', operator: '', // æä½äºº operatorTime: ''// æä½æ¶é´ } }, dialogVisibleSource: false, sourceTableData: [], sourceForm: { erporderstus: '', // 订åç¶æç erpordercode: '', // 订åç¼å· partcode: '', // 产åç¼ç partname: '', // 产ååç§° partspec: '', // 产åè§æ ¼ creatuser: '', // å建人å // paystartdate: '', // äº¤ä»æ¶é´ paystartdate: '', // é¢è®¡å¼å·¥æ¶é´ payenddate: '', // é¢è®¡å®å·¥æ¶é´ createdate: '', // å建æ¶é´ prop: 'createdate', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, sourceFormTotal: 10, radioSelectedId: '', isExpand: false// æ¯å¦å¼ å¼ï¼é»è®¤ä¸å±å¼ } }, created() { @@ -1041,6 +1450,8 @@ partname: this.form.partname, // 产ååç§° partspec: this.form.partspec, // 产åè§æ ¼ creatuser: this.form.creatuser, // å建人å sourceorder: this.form.sourceorder, // æºååå· ordertype: this.form.ordertype, // åæ®ç±»å createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // å建æ¶é´ prop: this.form.prop, // æåºå段 order: this.form.order, // æåºå段 @@ -1076,6 +1487,18 @@ this.form.prop = prop this.getMesOrderSearch() }, sourceSortChange({ column, prop, order }) { if (order === 'descending') { order = 'desc' } else if (order === 'ascending') { order = 'asc' } else { order = 'desc' } this.sourceForm.order = order this.sourceForm.prop = prop this.getErpOrderSearch() }, // æ¥è¯¢ search() { this.getMesOrderSearch() @@ -1090,7 +1513,9 @@ this.form.partspec = '' this.form.paydate = '' this.form.creatuser = '' this.form.createdate = '' this.form.sourceorder = '' this.form.creatuser = '' this.form.ordertype = '' this.getMesOrderSearch() }, // åéæ¡éä¸è·åå½åè¡ä¿¡æ¯ @@ -1139,10 +1564,14 @@ }, // å·¥åºä»»å¡ async check(row) { this.dialogVisibleTask = true const { data: res } = await SearchWorkStep({ wo_code: row.wo_code }) this.taskTableData = res if (this.taskTableData.length === 0) { return this.$message.info('æ çäº§ä»»å¡æ°æ®ï¼') } this.dialogForm.mesordercode = res[0].wo_code this.dialogVisibleTask = true }, dialogVisibleBack() { this.dialogVisibleTask = false @@ -1168,6 +1597,9 @@ this.dialogForm.partname = row.partname this.dialogForm.mesqty = row.plan_qty this.dialogForm.partspec = row.partspec this.dialogForm.sourceorder = row.sourceorder this.dialogForm.ordertype = row.ordertype // this.routecodeChange(this.dialogForm.routecode) this.dialogForm.planstartdate = row.plan_startdate !== null ? row.plan_startdate : handleDatetime(new Date()) @@ -1262,6 +1694,9 @@ this.dialogForm.partcode = '' // 产åç¼ç this.dialogForm.mesqty = '' // 工忰é this.dialogForm.ordertype = 'PO' // å·¥åç±»å this.dialogForm.sourceorder = '' // æºååå· this.dialogForm.routecode = '' // å·¥èºè·¯çº¿ç¼ç this.dialogForm.wkshopcode = '' // ç产车é´ç¼ç this.dialogForm.planstartdate = '' // 计åå¼å§æ¶é´ @@ -1278,6 +1713,9 @@ dialogVisibleConfirm() { this.$refs.dialogForm.validate(valid => { if (valid) { if (this.dialogForm.ordertype === 'FO' && this.dialogForm.sourceorder.toString().trim().length <= 0) { return this.$message.info('æºååå·ä¸è½ä¸ºç©ºï¼') } const data = { // partname: this.dialogForm.partname, // 产ååç§° // partspec: this.dialogForm.partspec, // 产åè§æ ¼ @@ -1288,7 +1726,8 @@ mesordercode: this.dialogForm.mesordercode, // å·¥åç¼å· partcode: this.dialogForm.partcode, // 产åç¼ç mesqty: this.dialogForm.mesqty, // 工忰é ordertype: this.dialogForm.ordertype, // åæ®ç±»å sourceorder: this.dialogForm.sourceorder, // æºååå· routecode: this.dialogForm.routecode, // å·¥èºè·¯çº¿ç¼ç wkshopcode: this.dialogForm.wkshopcode, // ç产车é´ç¼ç planstartdate: this.dialogForm.planstartdate, // 计åå¼å§æ¶é´ @@ -1373,6 +1812,7 @@ this.tableDataPrint = res3 this.formApprove.mesordercode = res3[0].wo_code this.formApprove.m_po = res3[0].m_po this.formApprove.partcode = res3[0].partcode this.formApprove.partname = res3[0].partname this.formApprove.partspec = res3[0].partspec @@ -1449,6 +1889,7 @@ dialogVisibleConfirmClose() { // this.dialogForm.mesordercode = '' this.formApprove.mesordercode = '' this.formApprove.m_po = '' this.formApprove.partcode = '' this.formApprove.partname = '' this.formApprove.partspec = '' @@ -1514,6 +1955,95 @@ colorLight: '#ffffff', // äºç»´ç èæ¯è² correctLevel: QRCode.CorrectLevel.L// 容éçï¼L/M/H }) }, // æ¥åºè¡¥åæ åµä¸å¯ç¹å»éæ© mesordertsourcesearchclick() { if (this.dialogForm.ordertype === 'PO') { return this.$message.info('å·¥åç±»å为æ¥åºè¡¥åæ åµä¸å¯éæ©ï¼') } this.getErpOrderSearch() this.dialogVisibleSource = true }, async getErpOrderSearch() { let tempDate2 = this.sourceForm.paystartdate if (tempDate2.length > 0) { tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) } let tempDate = this.sourceForm.payenddate if (tempDate.length > 0) { tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) } const data = { erporderstus: this.sourceForm.erporderstus, // 订åç¶æç erpordercode: this.sourceForm.erpordercode, // 订åç¼å· partcode: this.sourceForm.partcode, // 产åç¼ç partname: this.sourceForm.partname, // 产ååç§° partspec: this.sourceForm.partspec, // 产åè§æ ¼ paystartdate: tempDate2, // äº¤ä»æ¶é´ payenddate: tempDate, // äº¤ä»æ¶é´ creatuser: this.sourceForm.creatuser, // å建人å prop: this.sourceForm.prop, // æåºå段 order: this.sourceForm.order, // æåºå段 page: this.sourceForm.page, // 第å 页 rows: this.sourceForm.rows // æ¯é¡µå¤å°æ¡ } const res = await ErpOrderSearch(data) this.sourceTableData = res.data this.sourceFormTotal = res.count }, // åéæ¡éä¸è·åå½åè¡ä¿¡æ¯ getCurrentRowSource(id) { this.radioSelectedId = id }, sourceSearch() { this.getErpOrderSearch() }, sourceReset() { this.sourceForm.erporderstus = '' this.sourceForm.erpordercode = '' this.sourceForm.partcode = '' this.sourceForm.partname = '' this.sourceForm.partspec = '' this.sourceForm.paystartdate = '' this.sourceForm.payenddate = '' this.sourceForm.creatuser = '' this.sourceForm.createdate = '' this.getErpOrderSearch() }, dialogVisibleSourceClose() { this.radioSelectedId = '' this.sourceForm.erporderstus = '' this.sourceForm.erpordercode = '' this.sourceForm.partcode = '' this.sourceForm.partname = '' this.sourceForm.partspec = '' this.sourceForm.paystartdate = '' this.sourceForm.payenddate = '' this.sourceForm.creatuser = '' this.sourceForm.createdate = '' this.isExpand = false this.sourceTableData = [] }, dialogVisibleSourceBack() { this.dialogVisibleSource = false }, dialogVisibleSourceConfirm() { console.log(this.radioSelectedId) this.sourceTableData.forEach(item => { if (item.id === this.radioSelectedId) { this.dialogForm.sourceorder = item.wo } }) this.dialogVisibleSource = false } } @@ -1523,9 +2053,10 @@ <style lang="scss" scoped> $main_color: #42b983; .el-date-editor{ .el-date-editor { font-size: 14px; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } @@ -1582,12 +2113,13 @@ // //outline: #000 solid 2px !important; //} .tableDataPrint ::v-deep div.cell{ .tableDataPrint ::v-deep div.cell { display: flex !important; align-items: center !important; justify-content: center !important; } .formContent{ .formContent { width: 240px; } @@ -1602,18 +2134,37 @@ </style> <style> .formContent .el-form-item__label{ color: #000 !important; .formContent .el-form-item__label { color: #000 !important; } </style> <!--å ¬å ±é¡µé¢æ ·å¼--> <style lang="scss" scoped> $main_color: #42b983; .el-icon-share ,.el-icon-delete,.el-icon-edit-outline{ ::v-deep .el-range-input{ font-size: 14px !important; } ::v-deep .el-range__icon{ line-height: 28px !important; } ::v-deep .el-range-separator{ line-height: 28px !important; } ::v-deep .el-range-input{ font-size: 14px ; } ::v-deep .el-range-separator{ display: flex; justify-content: center; align-items: center; } .el-icon-share, .el-icon-delete, .el-icon-edit-outline { color: $main_color; cursor: pointer; } .el-icon-edit-outline{ .el-icon-edit-outline { margin-right: 15px; } @@ -1674,8 +2225,8 @@ background-color: #f8f8fa; } ::v-deep .el-table__body .el-table__row.hover-row td{ background-color: #eaecef ; ::v-deep .el-table__body .el-table__row.hover-row td { background-color: #eaecef; } ::v-deep .el-form--inline .el-form-item__label { @@ -1691,6 +2242,7 @@ .body ::v-deep .el-form-item { margin-bottom: 0; } .userDialogVisible ::v-deep .el-form-item { margin-bottom: 0; } @@ -1705,9 +2257,10 @@ align-items: center !important; } ::v-deep .el-input__prefix{ ::v-deep .el-input__prefix { margin-top: -3px; } //::v-deep .el-range__icon{ // line-height: 28px; //} src/views/scgl/scdd.vue
@@ -447,7 +447,6 @@ { code: 'CLOSED', name: 'å·²å ³é' } ], total: 10, radioSelected: '', radioSelectedId: '', tableData: [], dialogVisible: false, @@ -596,8 +595,6 @@ }, // åéæ¡éä¸è·åå½åè¡ä¿¡æ¯ getCurrentRow(id) { // console.log(row, 2) // this.radioSelected = row.wo this.radioSelectedId = id }, // 订åå ³é @@ -619,7 +616,6 @@ if (res.code === '200') { this.$message.success('订åå ³éæå!') this.getErpOrderSearch() // this.radioSelected = '' } }) }).catch(() => { src/views/scgl/sckbg.vue
@@ -632,6 +632,20 @@ <!-- <el-form-item v-if="dialogTitle==='èªå¶æ¥å·¥'" label="æ¥å·¥äººåï¼">--> <!-- <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />--> <!-- </el-form-item>--> <el-form-item v-if="dialogTitle==='èªå¶æ¥å·¥'" label="æ¥å·¥äººï¼"> <el-select v-model="dialogForm.operation" style="width: 200px;" placeholder="è¯·éæ©" > <el-option v-for="item in OperationArr" :key="item.usercode" :label="item.username" :value="item.usercode" /> </el-select> </el-form-item> <el-form-item v-if="dialogTitle==='èªå¶æ¥å·¥'" label="夿³¨ï¼"> <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> </el-form-item> @@ -829,6 +843,20 @@ :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item v-if="dialogTitle==='å¤åæ¶æ'" label="æ¶æäººï¼"> <el-select v-model="dialogForm.operation" style="width: 200px;" placeholder="è¯·éæ©" > <el-option v-for="item in OperationArr" :key="item.usercode" :label="item.username" :value="item.usercode" /> </el-select> </el-form-item> @@ -1204,6 +1232,7 @@ startqtySum: '', // ä¸è½è¶ è¿çæ°å¼ operation: getCookie('navTabId'), // æ¥å·¥äººï¼æ¶æäººï¼ remarks: ''// 夿³¨ }, @@ -1327,6 +1356,8 @@ }) // webapp_urlprotocol_startup() // webapp_ws_autoupdate(true) this.getMesOrderSelectUserAll() // è·åææäººå }, methods: { tableRowClassName({ row, rowIndex }) { @@ -1730,7 +1761,7 @@ this.dialogForm.nextstepcode = '' // ä¸éå·¥åºç¼ç this.dialogForm.remarks = '' // 夿³¨ this.dialogForm.operation = getCookie('navTabId') // æ¥å·¥äººï¼æ¶æäººï¼ this.userTableData = [] // 人åå表 this.$refs.dialogForm.clearValidate() @@ -1796,12 +1827,12 @@ SavaMesOrderStepIn(data).then(res => { if (res.code === '200') { this.$message.success('æ¶ææåï¼') this.dialogVisible = false if (this.dialogForm.nextstepcode !== '') { this.WXprint2() this.WXprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.operation).username) this.dialogVisible2 = true } this.dialogVisible = false this.tabClick() } else { this.$message.error('æ¶æå¤±è´¥!') @@ -1872,13 +1903,13 @@ SavaMesOrderStepReport(data).then(res => { if (res.code === '200') { this.$message.success('æ¥å·¥æåï¼') this.dialogVisible = false console.log(this.dialogForm.nextstepcode, 1) if (this.dialogForm.nextstepcode !== '') { this.ZZprint2() this.ZZprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.operation).username) this.dialogVisible2 = true } this.dialogVisible = false this.tabClick() } else { this.$message.error('æ¥å·¥å¤±è´¥!') @@ -1901,27 +1932,27 @@ correctLevel: QRCode.CorrectLevel.L// 容éçï¼L/M/H }) }, ZZprint2() { ZZprint2(username) { this.qrForm.qrvalue = this.dialogForm.wo_code + ';' + this.dialogForm.nextstepcode this.qrForm.startqty = this.dialogForm.startqty this.qrForm.wo_code = this.dialogForm.wo_code this.qrForm.partcode = this.dialogForm.partcode this.qrForm.partname = this.dialogForm.partname this.qrForm.nextstepname = this.dialogForm.nextstepname this.qrForm.operator = getCookie('username') this.qrForm.operator = username this.qrForm.operatorTime = handleDatetime2(new Date()) this.$nextTick(() => { this.bindQRCode(this.qrForm.qrvalue) }) }, WXprint2() { WXprint2(username) { this.qrForm.qrvalue = this.dialogForm.wo_code + ';' + this.dialogForm.nextstepcode this.qrForm.startqty = this.dialogForm.sqty this.qrForm.wo_code = this.dialogForm.wo_code this.qrForm.partcode = this.dialogForm.partcode this.qrForm.partname = this.dialogForm.partname this.qrForm.nextstepname = this.dialogForm.nextstepname this.qrForm.operator = getCookie('username') this.qrForm.operator = username this.qrForm.operatorTime = handleDatetime2(new Date()) this.$nextTick(() => { this.bindQRCode(this.qrForm.qrvalue) @@ -1994,12 +2025,12 @@ this.badDialogForm.operation = getCookie('navTabId') this.badTableDataDialog = [] }, async getMesOrderSelectUserAll() { const { data: res } = await MesOrderSelectUser({ usercode: '' }) this.OperationArr = res }, // ç¹å»ç»´ä¿®å¤çæé® æ æ«ææ¡ç çæ«æå车äºä»¶ async repairHandle(row) { const { data: res1 } = await MesOrderSelectUser({ usercode: '' }) this.OperationArr = res1 console.log(row) let data if (row.wo_code) { data = { @@ -2065,10 +2096,6 @@ }) }, badSave(row) { console.log(row, 1) // console.log(parseFloat(row.bad_qty) + parseFloat(row.repair_qty), 2) // console.log(parseFloat(row.ng_qty), 2) // console.log(parseFloat(row.bad_qty) + parseFloat(row.repair_qty) > parseFloat(row.ng_qty), 2) if (parseFloat(row.bad_qty) + parseFloat(row.repair_qty) > parseFloat(row.ng_qty)) { this.badCancel(row) return this.$message.info('ç»´ä¿®æ°é䏿¥åºæ°éä¹åä¸è½å¤§äºä¸è¯æ°éï¼') @@ -2076,8 +2103,8 @@ this.badTableDataDialog.forEach((item, index) => { if (item.id === row.id && item.m_id === row.m_id) { this.badTableDataDialog.splice(index, 1, { bad_qty: row.bad_qty, repair_qty: row.repair_qty, bad_qty: parseFloat(row.bad_qty), repair_qty: parseFloat(row.repair_qty), isVisible: 0, defect_code: row.defect_code, defect_name: row.defect_name, src/views/wlgl/ckdy.vue
@@ -2,14 +2,17 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-refresh-right" @click="syncSeaveSearchWhareHouseLocation" >忥ä»åº/åºä½ </el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> <div style="display: flex"> <el-button icon="el-icon-refresh-right" @click="syncSeaveSearchWhareHouseLocation" >忥ä»åº/åºä½ </el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> </div> <div class="bodyTopFormGroup"> src/views/zlgl/gxjy.vue
@@ -124,7 +124,42 @@ :value="item.usercode" /> </el-select> <div style="width: 90px;margin-left: 50px;display: flex"> <div style="color: red;width:10px">*</div> æ£éªæ°éï¼ </div> <el-input v-model="checkCount" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" /> </div> <!-- æ£éªç»æ å æ£éªå¤æ³¨ --> <div style="display: flex;margin-top: 20px;align-items: center"> <div style="display: flex;margin-right: 50px;align-items: center"> <div style="width: 90px;display: flex"> <div style="color: red;width:10px">*</div> æ£éªç»æï¼ </div> <el-select v-model="checkResult" style="width: 200px;" placeholder="è¯·éæ©" filterable > <el-option v-for="item in checkResultSelect" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </div> <div style="display: flex;align-items: center"> <div style="width: 90px">æ£éªå¤æ³¨ï¼</div> <el-input v-model="checkdescr" style="width: 540px" placeholder="请è¾å ¥" /> </div> </div> <div style="margin: 15px 0;font-size: 14px"> <i class="el-icon-s-operation" style="color:#42b983; margin-right: 5px" />æ£éªé¡¹ä¿¡æ¯ </div> @@ -151,38 +186,80 @@ width="100" fixed /> <!-- <el-table-column--> <!-- prop="code"--> <!-- label="æ£éªé¡¹ç®ç¼ç "--> <!-- sortable="custom"--> <!-- />--> <!-- label="æ£éªé¡¹ç®ç¼ç (åç§°)"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div v-if="row.isVisible===0" style="display: flex;">--> <!-- <div>{{ row.code }}</div>--> <!-- <div style="margin-left: 10px">{{ row.name }}</div>--> <!-- </div>--> <!-- <el-select--> <!-- v-if="row.isVisible===1"--> <!-- v-model="row.code"--> <!-- filterable--> <!-- style="width: 400px;"--> <!-- placeholder="è¯·éæ©"--> <!-- @change="val=>changeCode(val,row)"--> <!-- >--> <!-- <el-option--> <!-- v-for="item in JYSelectArr"--> <!-- :key="item.code"--> <!-- :label="item.code+''+item.name"--> <!-- :value="item.code"--> <!-- />--> <!-- </el-select>--> <!-- </template>--> <!-- </el-table-column>--> <el-table-column prop="code" label="æ£éªé¡¹ç®ç¼ç (åç§°)" label="æ£éªæ åç¼ç " > <template slot-scope="{row}"> <div v-if="row.isVisible===0" style="display: flex;"> <div>{{ row.code }}</div> <div style="margin-left: 10px">{{ row.name }}</div> </div> <div v-if="row.isVisible===0">{{ row.code }}</div> <el-select v-if="row.isVisible===1" v-model="row.code" filterable style="width: 400px;" style="width: 200px;" placeholder="è¯·éæ©" @change="val=>changeCode(val,row)" @change="val=>changeName(val,row)" > <el-option v-for="item in JYSelectArr" :key="item.name" :label="item.code" :value="item.name" /> </el-select> </template> </el-table-column> <el-table-column prop="name" label="æ£éªæ ååç§°" > <template slot-scope="{row}"> <div v-if="row.isVisible===0">{{ row.name }}</div> <el-select v-if="row.isVisible===1" v-model="row.name" style="width: 200px;" placeholder="è¯·éæ©" @change="val=>changeName(val,row)" > <el-option v-for="item in JYSelectArr" :key="item.code" :label="item.code+''+item.name" :label="item.name" :value="item.code" /> </el-select> </template> </el-table-column> <el-table-column prop="stepcheckitem_desc" label="æ£éªæ åæè¿°" @@ -242,6 +319,7 @@ <el-table-column label="æä½" fixed="right" > <template slot-scope="{row}"> <div class="operationClass"> @@ -252,34 +330,6 @@ </template> </el-table-column> </el-table> </div> <!-- æ£éªç»æ å æ£éªå¤æ³¨ --> <div style="display: flex;margin-top: 20px;align-items: center"> <div style="display: flex;margin-right: 50px;align-items: center"> <div style="width: 90px;display: flex"> <div style="color: red;width:10px">*</div> æ£éªç»æï¼ </div> <el-select v-model="checkResult" style="width: 200px;" placeholder="è¯·éæ©" filterable > <el-option v-for="item in checkResultSelect" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </div> <div style="display: flex;align-items: center"> <div style="width: 90px">æ£éªå¤æ³¨ï¼</div> <el-input v-model="checkdescr" style="width: 300px" placeholder="请è¾å ¥" /> </div> </div> <div style="display: flex;margin: 30px 0;align-items: center"> @@ -330,6 +380,7 @@ checkStandard: '', // æ£éªæ å checkStandardSelect: [], // æ£éªæ å䏿æ°ç» checkUser: '', // æ£éªäººå checkCount: 0, // æ£éªæ°é checkUserSelect: [], // æ£éªäººå䏿æ°ç» checkResult: '', // æ£éªç»æ checkResultSelect: [ @@ -340,7 +391,8 @@ JYTableData: [], // æ£éªé¡¹ä¿¡æ¯è¡¨æ ¼ JYSelectArr: [], // æ£éªä¸ææ°ç» JYSelectedArr: [], // 已鿣éªé¡¹ç®æ°ç» // JYSelectedArr: [], // 已鿣éªé¡¹ç®æ°ç» JYIsCancel: true, multipleSelection: [], // è¡¨æ ¼å¤éæ¡ tabClickIndex: null, // ç¹å»çåå æ ¼ tabClickLabel: '', // å½åç¹å»çåå @@ -390,10 +442,14 @@ }, // æ£éªæ å䏿弿¹å async changeCheckStandard(val) { await this.getJYSelectArr() this.isCancel = false this.JYSelectedArr = [] const { data: res } = await MesOrderStepCheckItemList({ checkstandcode: val }) this.JYTableData = res // let arr = [â¦b].filter(x => [â¦a].every(y => y.id !== x.id)); this.JYSelectArr = [...this.JYSelectArr].filter(x => [...this.JYTableData].every(y => y.code !== x.code)) this.JYTableData.forEach(item => { let number = Math.random() * Math.random()// ä½ä¸ºå 餿¶çæ è¯ç¬¦ @@ -404,7 +460,6 @@ item.isVisible = 0 item.number = number this.JYSelectedArr.push(item.code) }) this.$refs.multipleTable.toggleAllSelection() }, @@ -436,9 +491,13 @@ } }, // æ£éªé¡¹ç®ç¼ç ï¼åç§°ï¼ changeCode(val, row) { row.stepcheckitem_desc = this.JYSelectArr.find(it => it.code === val).descr row.name = this.JYSelectArr.find(it => it.code === val).name changeName(val, row) { const res = this.JYSelectArr.find(item => { return item.code === val || item.name === val }) row.code = res.code row.name = res.name row.stepcheckitem_desc = res.descr }, // æ«ç é®çå车äºä»¶ async enterNative(val, belong) { @@ -455,6 +514,9 @@ // æ°å¢ add() { if (this.JYTableData.length === 0) { return this.$message.info('请å éæ©æ£éªæ åï¼') } if (this.JYTableData.length > 0 && this.JYTableData[this.JYTableData.length - 1].isVisible === 1) { return this.$message.info('请å ç¡®å®æåæ¶æ¬æ¡è®°å½ï¼') } @@ -464,19 +526,25 @@ const data = { result: 'OK', code: '', name: '', stepcheckitem_desc: '', isVisible: 1, number } this.JYTableData.push(data) this.$refs.multipleTable.toggleRowSelection(data, true) this.JYIsCancel = false }, // 确认 confirm(row) { if (row.code === '') { return this.$message.info('æ£éªé¡¹ç®ç¼ç (åç§°)ä¸è½ä¸ºç©ºï¼') return this.$message.info('æ£éªé¡¹ç®ç¼ç ä¸è½ä¸ºç©ºï¼') } if (row.name === '') { return this.$message.info('æ£éªé¡¹ç®åç§°ä¸è½ä¸ºç©ºï¼') } if (this.JYSelectedArr.find(item => item === row.code) !== undefined) { return this.$message.info('æ£éªé¡¹ç®ç¼ç (åç§°)ä¸è½éå¤ï¼') } else { this.JYSelectedArr.push(row.code) } this.JYSelectArr.forEach((item, index) => { if (item.code === row.code) { this.JYSelectArr.splice(index, 1) } }) this.JYTableData.forEach((item, index) => { if (item.number === row.number) { item.isVisible = 0 @@ -501,24 +569,27 @@ } }) this.JYSelectedArr.forEach((item, index) => { if (item === row.code) { this.JYSelectedArr.splice(index, 1) } }) if (this.JYIsCancel && row.code.toString().length > 0) { this.JYSelectArr.splice(0, 0, { code: row.code, name: row.name, descr: row.stepcheckitem_desc }) } this.JYIsCancel = true }, // å é¤ del(row) { this.JYSelectArr.splice(0, 0, { code: row.code, name: row.name, descr: row.stepcheckitem_desc }) this.JYTableData.forEach((item, index) => { if (item.number === row.number) { this.JYTableData.splice(index, 1) } }) this.JYSelectedArr.forEach((item, index) => { if (item === row.code) { this.JYSelectedArr.splice(index, 1) } }) }, @@ -533,6 +604,9 @@ } if (this.checkUser.length < 1) { return this.$message.info('æ£éªäººåä¸è½ä¸ºç©ºï¼') } if (parseFloat(this.checkCount) > 0) { return this.$message.info('æ£éªæ°éå¿ é¡»è¦å¤§äºé¶ï¼') } if (this.JYTableData.length < 1) { return this.$message.info('æ£éªé¡¹ä¿¡æ¯ä¸è½ä¸ºç©ºï¼') @@ -573,6 +647,7 @@ this.$message.success(text + 'æåï¼') this.clearContent() this.getFocus() this.getJYSelectArr() } }) }).catch(() => { @@ -581,15 +656,16 @@ } else { this.clearContent() this.getFocus() this.getJYSelectArr() } }, // æ¸ ç©ºé¡µé¢å 容 clearContent() { this.JYTableData = [] this.multipleSelection = [] this.JYSelectedArr = [] this.checkdescr = '' this.checkUser = '' this.checkCount = 0 this.checkResult = '' this.checkStandard = '' this.form.orderstepqrcode = '' src/views/zlgl/gxjybz.vue
@@ -90,9 +90,12 @@ > <template slot-scope="{row}"> <div class="operationClass"> <el-tooltip class="item" effect="dark" content="æ¥ç" placement="top"> <i class="el-icon-view" style="color: #42b983;cursor: pointer;margin-right: 15px;" @click="check('check',row)" /> <i class="el-icon-view" style="color: #42b983;cursor: pointer;margin-right: 15px;" @click="check('check',row)" /> </el-tooltip> <el-tooltip class="item" effect="dark" content="ç¼è¾" placement="top"> <i class="el-icon-edit-outline" @click="edit('edit',row)" /> @@ -144,7 +147,12 @@ <el-input v-model="dialogForm.name" :disabled="operation==='check'" style="width: 200px" /> </el-form-item> <el-form-item label="æè¿°"> <el-input v-model="dialogForm.description" :disabled="operation==='check'" type="textarea" style="width: 200px" /> <el-input v-model="dialogForm.description" :disabled="operation==='check'" type="textarea" style="width: 200px" /> </el-form-item> </el-form> <div style="margin-bottom: 10px"> @@ -171,58 +179,77 @@ width="100" fixed /> <el-table-column prop="code" label="æ£éªæ åç¼ç (åç§°)" > <template slot-scope="{row}"> <div v-if="row.isVisible===0" style="display: flex;"> <div>{{ row.code }}</div> <div style="margin-left: 10px">{{ row.name }}</div> </div> <el-select v-if="row.isVisible===1" v-model="row.code" filterable :popper-append-to-body="false" style="width: 400px;" placeholder="è¯·éæ©" @change="val=>changeCode(val,row)" > <el-option v-for="item in JYSelectArr" :key="item.code" :label="item.code+''+item.name" :value="item.code" /> </el-select> </template> </el-table-column> <!-- <el-table-column--> <!-- prop="name"--> <!-- label="æ£éªæ ååç§°"--> <!-- prop="code"--> <!-- label="æ£éªæ åç¼ç (åç§°)"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div v-if="row.isVisible===0">{{ row.name }}</div>--> <!-- <div v-if="row.isVisible===0" style="display: flex;">--> <!-- <div>{{ row.code }}</div>--> <!-- <div style="margin-left: 10px">{{ row.name }}</div>--> <!-- </div>--> <!-- <el-select--> <!-- v-if="row.isVisible===1"--> <!-- v-model="row.name"--> <!-- v-model="row.code"--> <!-- filterable--> <!-- :popper-append-to-body="false"--> <!-- style="width: 200px;"--> <!-- style="width: 400px;"--> <!-- placeholder="è¯·éæ©"--> <!-- @change="val=>changeName(val,row)"--> <!-- @change="val=>changeCode(val,row)"--> <!-- >--> <!-- <el-option--> <!-- v-for="item in JYSelectArr"--> <!-- :key="item.code"--> <!-- :label="item.name"--> <!-- :label="item.code+''+item.name"--> <!-- :value="item.code"--> <!-- />--> <!-- </el-select>--> <!-- </template>--> <!-- </el-table-column>--> <el-table-column prop="code" label="æ£éªæ åç¼ç " > <template slot-scope="{row}"> <div v-if="row.isVisible===0">{{ row.code }}</div> <el-select v-if="row.isVisible===1" v-model="row.code" style="width: 200px;" placeholder="è¯·éæ©" @change="val=>changeName(val,row)" > <el-option v-for="item in JYSelectArr" :key="item.name" :label="item.code" :value="item.name" /> </el-select> </template> </el-table-column> <el-table-column prop="name" label="æ£éªæ ååç§°" > <template slot-scope="{row}"> <div v-if="row.isVisible===0">{{ row.name }}</div> <el-select v-if="row.isVisible===1" v-model="row.name" style="width: 200px;" placeholder="è¯·éæ©" @change="val=>changeName(val,row)" > <el-option v-for="item in JYSelectArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </template> </el-table-column> <el-table-column prop="descr" label="æ£éªæè¿°æè¿°" @@ -235,6 +262,7 @@ <el-table-column v-if="operation!=='check'" label="æä½" fixed="right" > <template slot-scope="{row}"> <div class="operationClass"> @@ -326,7 +354,7 @@ }, JYTableData: [], // å¯¹è¯æ¡æ£éªä¿¡æ¯è¡¨æ ¼ JYSelectArr: [], // æ£éªé¡¹ç®ä¸ææ°ç» JYSelectedArr: [] // 已鿣éªé¡¹ç®æ°ç» JYIsCancel: true } }, created() { @@ -413,7 +441,6 @@ item.isVisible = 0 item.descr = item.stepcheckitem_desc item.number = number this.JYSelectedArr.push(item.code) }) this.$nextTick(() => { this.$refs.JYTableData.doLayout() @@ -443,7 +470,7 @@ this.dialogForm.enable = '' this.dialogForm.description = '' this.JYTableData = [] this.JYSelectedArr = [] this.getStepCheckItemSelect() this.$refs.dialogForm.clearValidate() }, // å¯¹è¯æ¡åæ¶ @@ -498,15 +525,19 @@ this.JYSelectArr = res }, // æ£éªæ åç¼ç 弿¹å changeCode(val, row) { row.name = this.JYSelectArr.find(it => it.code === val).name row.descr = this.JYSelectArr.find(it => it.code === val).descr }, // æ£éªæ ååç§°å¼æ¹å // changeName(val, row) { // row.code = this.JYSelectArr.find(it => it.code === val).code // changeCode(val, row) { // row.name = this.JYSelectArr.find(it => it.code === val).name // row.descr = this.JYSelectArr.find(it => it.code === val).descr // }, // æ£éªæ ååç§°å¼æ¹å changeName(val, row) { const res = this.JYSelectArr.find(item => { return item.code === val || item.name === val }) row.code = res.code row.name = res.name row.descr = res.descr }, // æ£éªæ°å¢ JYadd() { if (this.JYTableData.length > 0 && this.JYTableData[this.JYTableData.length - 1].isVisible === 1) { @@ -517,46 +548,54 @@ number = number === 0 ? (10 + Math.random()) : number const data = { code: '', name: '', descr: '', isVisible: 1, number } this.JYTableData.push(data) this.JYIsCancel = false }, JYedit(row) { this.JYSelectedArr.forEach((item, index) => { if (item === row.code) { this.JYSelectedArr.splice(index, 1) } this.JYIsCancel = false this.JYSelectArr.splice(0, 0, { code: row.code, name: row.name, descr: row.descr }) this.JYTableData.forEach((item, index) => { if (item.code === row.code) { item.isVisible = 1 if (item.code === row.code && item.number === row.number) { this.JYTableData.splice(index, 1, { code: row.code, name: row.name, descr: row.descr, isVisible: 1, number: row.number }) } }) }, JYdel(row) { this.JYSelectArr.splice(0, 0, { code: row.code, name: row.name, descr: row.descr }) this.JYTableData.forEach((item, index) => { if (item.number === row.number) { this.JYTableData.splice(index, 1) } }) this.JYSelectedArr.forEach((item, index) => { if (item === row.code) { this.JYSelectedArr.splice(index, 1) } }) }, JYsave(row) { if (row.code === '') { return this.$message.info('æ£éªæ åç¼ç (åç§°)ä¸è½ä¸ºç©ºï¼') return this.$message.info('æ£éªæ åç¼ç ä¸è½ä¸ºç©ºï¼') } // if (row.name === '') { // return this.$message.info('æ£éªæ ååç§°ä¸è½ä¸ºç©ºï¼') // } if (row.name === '') { return this.$message.info('æ£éªæ ååç§°ä¸è½ä¸ºç©ºï¼') } if (this.JYSelectedArr.find(item => item === row.code) !== undefined) { return this.$message.info('æ£éªæ åç¼ç (åç§°)ä¸è½éå¤ï¼') } else { this.JYSelectedArr.push(row.code) } this.JYSelectArr.forEach((item, index) => { if (item.code === row.code) { this.JYSelectArr.splice(index, 1) } }) this.JYTableData.forEach((item, index) => { if (item.number === row.number) { @@ -577,12 +616,15 @@ this.JYTableData.splice(index, 1) } }) this.JYSelectedArr.forEach((item, index) => { if (item === row.code) { this.JYSelectedArr.splice(index, 1) } }) console.log(this.JYIsCancel) if (this.JYIsCancel && row.code.toString().length > 0) { this.JYSelectArr.splice(0, 0, { code: row.code, name: row.name, descr: row.descr }) } this.JYIsCancel = true } } } @@ -591,21 +633,23 @@ <!--å ¬å ±é¡µé¢æ ·å¼--> <style lang="scss" scoped> $main_color: #42b983; .el-button--text{ .el-button--text { font-size: 14px; cursor: pointer; } ::v-deep .el-select__caret { display: flex; align-items: center; justify-content: center; } .el-icon-share ,.el-icon-delete,.el-icon-edit-outline{ .el-icon-share, .el-icon-delete, .el-icon-edit-outline { color: $main_color; cursor: pointer; } .el-icon-edit-outline{ .el-icon-edit-outline { margin-right: 15px; } @@ -666,8 +710,8 @@ background-color: #f8f8fa; } ::v-deep .el-table__body .el-table__row.hover-row td{ background-color: #eaecef ; ::v-deep .el-table__body .el-table__row.hover-row td { background-color: #eaecef; } ::v-deep .el-form--inline .el-form-item__label { @@ -683,6 +727,7 @@ .body ::v-deep .el-form-item { margin-bottom: 0; } .userDialogVisible ::v-deep .el-form-item { margin-bottom: 0; } src/views/zlgl/gxjyjl.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,655 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <el-button type="primary" icon="el-icon-download" @click="download">导åº</el-button> <!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button>--> <!-- <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button>--> </div> <div class="bodyTopFormGroup"> <el-form ref="form" :model="form" label-width="80px" inline style="display: flex;justify-content: space-between" > <div class="elForm"> <el-form-item label="å·¥åç¼å·" style=" display: flex;"> <el-input v-model="form.wocode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="产åç¼ç " style=" display: flex;"> <el-input v-model="form.partcode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="产ååç§°" style=" display: flex;"> <el-input v-model="form.partname" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="è§æ ¼åå·" style=" display: flex;"> <el-input v-model="form.partapec" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="å·¥åºåç§°" style=" display: flex;"> <el-input v-model="form.stepname" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="æ ååç§°" style=" display: flex;"> <el-input v-model="form.standname" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="æ£éªç±»å" style=" display: flex;"> <el-select v-model="form.checktype" style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in checktypeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="æ£éªç»æ" style=" display: flex;"> <el-select v-model="form.checkresult " style="width: 200px" placeholder="è¯·éæ©"> <el-option v-for="item in checkresultArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> </div> <div style="display: flex;align-items: start;margin-top: 5px;z-index: 2"> <el-button type="primary" icon="el-icon-search" @click="search">æ¥è¯¢</el-button> <el-button type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> </div> <div class="elTableDiv"> <el-table :data="tableData" :height="tableHeight+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:tableHeight+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChange" > <!-- <el-table-column--> <!-- type="selection"--> <!-- width="50"--> <!-- fixed--> <!-- />--> <el-table-column prop="RowNum" width="50" label="åºå·" fixed /> <el-table-column prop="wo_code" label="å·¥åç¼ç " width="160" sortable="custom" /> <el-table-column prop="partcode" width="160" label="产åç¼ç " sortable="custom" /> <el-table-column prop="partname" label="产ååç§°" width="160" sortable="custom" /> <el-table-column prop="partspec" label="产åè§æ ¼" width="160" sortable="custom" > <template slot-scope="{row}"> <div v-if="row.partspec">{{ row.partspec }} </div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="step_code" label="å·¥åºç¼ç " width="120" sortable="custom" /> <el-table-column prop="stepname" label="å·¥åºåç§°" width="120" sortable="custom" /> <el-table-column prop="checkstaned_code" label="æ åç¼ç " width="120" sortable="custom" /> <el-table-column prop="checkstaned_name" label="æ ååç§°" width="120" sortable="custom" /> <el-table-column prop="check_type" label="æ£éªç±»å" sortable="custom" width="120" > <template slot-scope="{row}"> <div v-if="row.check_type==='FirstCheck'">馿£</div> <div v-if="row.check_type==='PatroCheck'">å·¡æ£</div> <div v-if="row.check_type==='EndCheck'">å®å·¥æ£</div> </template> </el-table-column> <el-table-column prop="check_result" label="æ£éªç»æ" sortable="custom" width="120" > <template slot-scope="{row}"> <div v-if="row.check_result==='NG'"> <i class="el-icon-circle-close" style="color:red;" /> ä¸è¯</div> <div v-if="row.check_result==='OK'"> <i class="el-icon-circle-check" style="color: #42b983" /> åæ ¼</div> </template> </el-table-column> <el-table-column prop="check_descr" label="æ£éªå¤æ³¨" width="120" show-tooltip-when-overflow sortable="custom" > <template slot-scope="{row}"> <div v-if="row.check_descr">{{ row.check_descr }} </div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="check_qty" label="æ£éªæ°é" width="120" sortable="custom" /> <el-table-column prop="lm_user" label="æ£éªäººå" sortable="custom" width="120" /> <el-table-column prop="lm_date" label="æ£éªæ¶é´" width="160" sortable="custom" /> <el-table-column label="æä½" fixed="right" width="120" > <template slot-scope="{row}"> <div class="operationClass"> <el-button type="text" @click="check(row)">æ¥ç</el-button> <!-- <el-button type="text" @click="del(row)">å é¤</el-button>--> </div> </template> </el-table-column> </el-table> </div> <!--å页--> <pagination :total="total" :page.sync="form.page" :limit.sync="form.rows" align="right" layout="prev, pager, next,sizes" popper-class="select_bottom" @pagination="getStepCheckTableSearch" /> </div> <el-dialog title="å·¥åºæ£éªæç»" :visible.sync="dialogVisible" width="900px" :close-on-click-modal="false" top="15vh" @closed="handleClose" @close="handleClose" > <div class="elTableDiv"> <el-table :data="tableDataDialog" :height="(tableHeight-100)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:(tableHeight-100)+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" > <!-- <el-table-column--> <!-- type="selection"--> <!-- width="50"--> <!-- fixed--> <!-- />--> <el-table-column type="index" width="50" label="åºå·" fixed /> <el-table-column prop="checkitem_code" label="æ£éªé¡¹ç®ç¼å·" width="120" /> <el-table-column prop="checkitem_name" label="æ£éªé¡¹ç®åç§°" /> <el-table-column prop="checkitem_descr" label="æ£éªé¡¹ç®æè¿°" /> <el-table-column prop="check_result" label="æ£éªç»æ" width="120" > <template slot-scope="{row}"> <div v-if="row.check_result==='NG'"> <i class="el-icon-circle-close" style="color:red;" /> ä¸è¯</div> <div v-if="row.check_result==='OK'"> <i class="el-icon-circle-check" style="color: #42b983" /> åæ ¼</div> </template> </el-table-column> <el-table-column prop="lm_user" label="æ£éªäººå" width="120" /> <el-table-column prop="lm_date" label="æ£éªæ¶é´" width="160" /> <!-- <el-table-column--> <!-- label="æä½"--> <!-- fixed="right"--> <!-- width="120"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div class="operationClass">--> <!-- <el-button type="text" @click="check(row)">æ¥ç</el-button>--> <!-- <!– <el-button type="text" @click="del(row)">å é¤</el-button>–>--> <!-- </div>--> <!-- </template>--> <!-- </el-table-column>--> </el-table> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <!-- <el-button @click="dialogVisibleCancel">å æ¶</el-button>--> <!-- <el-button type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button>--> <el-button @click="dialogVisibleBack">è¿ å</el-button> </div> </span> </el-dialog> <!--å¯¼å ¥ç»ä»¶--> <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" /> </div> </template> <script> import Pagination from '@/components/Pagination' import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' import { getCookie } from '@/utils/auth' import ImportPicker from '@/components/ImportPicker' import { StepCheckTableOutExcel, StepCheckTableSearch, StepCheckTableSubSearch } from '@/api/zlgl' const SER_HZ = /^[\u4e00-\u9fa5]+$/ export default { name: 'Zzjg', components: { Pagination, ImportPicker }, data() { const validateName = (rule, value, callback) => { if (!value) { return callback(new Error('请è¾å ¥ç¼ç ')) } else { if (SER_HZ.test(value)) { return callback(new Error('ç¼ç ä¸è½ä¸ºä¸æ')) } else { callback() } } } const validateTypeCode = (rule, value, callback) => { if (!value) { return callback(new Error('è¯·éæ©ä¸çº§')) } else { callback() } } return { mainHeight: 0, tableHeight: 0, form: { wocode: '', // å·¥åç¼å· partcode: '', // 产åç¼ç partname: '', // 产ååç§° partapec: '', // 产åè§æ ¼ stepname: '', // å·¥åºåç§° standname: '', // æ ååç§° checktype: '', // æ£éªç±»å checkresult: '', // æ£éªç±»å prop: 'lm_date', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, checktypeArr: [ { code: 'FirstCheck', name: '馿£' }, { code: 'PatroCheck', name: 'å·¡æ£' }, { code: 'EndCheck', name: 'å®å·¥æ£' } ], checkresultArr: [ { code: 'OK', name: 'åæ ¼' }, { code: 'NG', name: 'ä¸è¯' } ], total: 10, tableData: [], dialogVisible: false, tableDataDialog: [], title_value: 'æ°æ®å¯¼å ¥ / ç¹æ£é¨ä½', code: '4', shows: false } }, watch: { shows() { if (!this.shows) { this.getStepCheckTableSearch() } } }, created() { this.getStepCheckTableSearch() }, mounted() { window.addEventListener('resize', this.getHeight) this.getHeight() }, methods: { async getStepCheckTableSearch() { const res = await StepCheckTableSearch(this.form) this.tableData = res.data this.total = res.count }, // æåºæ¹åæ¶ sortChange({ column, prop, order }) { if (order === 'descending') { order = 'desc' } else if (order === 'ascending') { order = 'asc' } else { order = 'desc' } this.form.order = order this.form.prop = prop this.getStepCheckTableSearch() }, // æ¥è¯¢ search() { this.getStepCheckTableSearch() }, // å¯¼å ¥æé® upload() { this.shows = true this.$refs.importPickerFunc.newDataFunc() }, colos() { this.shows = false }, // éç½® reset() { this.form.wocode = '', // å·¥åç¼å· this.form.partcode = '', // 产åç¼ç this.form.partname = '', // 产ååç§° this.form.partapec = '', // 产åè§æ ¼ this.form.stepname = '', // å·¥åºåç§° this.form.standname = '', // æ ååç§° this.form.checktype = '', // æ£éªç±»å this.form.checkresult = '', // æ£éªç±»å this.getStepCheckTableSearch() }, async check(row) { // this.operation = operation console.log(row, 1) const res = await StepCheckTableSubSearch({ id: row.id }) this.tableDataDialog = res.data this.dialogVisible = true }, // æ°å¢æé® add(operation) { this.operation = operation this.dialogVisible = true }, // ä¿®æ¹æé® edit(operation, row) { this.operation = operation this.dialogVisible = true this.$nextTick(() => { this.dialogForm.OrgCode = row.org_code this.dialogForm.OrgName = row.org_name this.dialogForm.SupUnit = row.parent_id }) }, // å é¤æé® async del(row) { this.$confirm('æ¯å¦ç¡®è®¤å é¤?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { DeleteOrganization({ orgid: row.code }).then(res => { if (res.code === '200') { this.$message.success('å 餿å!') this.getStepCheckTableSearch() } }) }).catch(() => { this.$message.info('已忶å é¤') }) }, // å¯¹è¯æ¡å ³éäºä»¶ handleClose() { this.dialogForm.OrgType = '' this.dialogForm.OrgCode = '' this.dialogForm.OrgName = '' this.dialogForm.SupUnit = '' this.$refs.dialogForm.clearValidate() }, // å¯¹è¯æ¡åæ¶ dialogVisibleCancel() { this.dialogVisible = false }, // å¯¹è¯æ¡ç¡®è®¤ dialogVisibleConfirm() { this.$refs.dialogForm.validate(valid => { if (valid) { const data = { OrganCode: this.dialogForm.OrgCode, OrganName: this.dialogForm.OrgName, OperType: this.operation === 'add' ? 'Add' : 'Update', Operator: getCookie('admin') } AddUpdateOrganization(data).then(res => { if (res.code === '200') { this.$message.success(this.operation === 'add' ? 'æ·»å æåï¼' : 'ä¿®æ¹æåï¼') this.dialogVisible = false this.getStepCheckTableSearch() } else { this.$message.error(this.operation === 'add' ? 'æ·»å 失败ï¼' : 'ä¿®æ¹å¤±è´¥ï¼') } }) } }) }, // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 240 }) }, tableRowClassName({ row, rowIndex }) { return 'custom-row' }, async download() { const { data: res } = await StepCheckTableOutExcel(this.form) window.location.href = res }, dialogVisibleBack() { this.dialogVisible = false } } } </script> <!--å ¬å ±é¡µé¢æ ·å¼--> <style lang="scss" scoped> $main_color: #42b983; ::v-deep .el-button--text { font-size: 14px; cursor: pointer; } .el-icon-share, .el-icon-delete, .el-icon-edit-outline { color: $main_color; cursor: pointer; } .el-icon-edit-outline { margin-right: 15px; } ::v-deep .el-button--primary, .el-button--default, .el-button--info { height: 34px; display: flex; align-items: center; padding: 0 15px; } ::v-deep .el-button--primary { //background-color: $main_color !important; } ::v-deep .el-button--default { background-color: #f8f8fa; border: none; } ::v-deep .el-input__inner { height: 34px; line-height: 34px; //color: #a7a7a7; } ::v-deep .el-dialog__body { padding: 20px 20px !important; } //::v-deep .el-dialog__body { // padding: 20px 100px !important; //} ::v-deep .dialogVisibleRoles .el-dialog__body { padding: 20px 20px !important; } ::v-deep .importPickerClass .el-dialog__body { padding: 20px 20px !important; } ::v-deep .el-dialog__footer { display: flex; justify-content: flex-end; } ::v-deep .el-table .caret-wrapper { transform: scale(0.8); } ::v-deep .cell { display: flex; align-items: center; justify-content: space-between; } ::v-deep .el-table::before { height: 0; } ::v-deep .el-table__body-wrapper { background-color: #f8f8fa; } ::v-deep .el-table__body .el-table__row.hover-row td { background-color: #eaecef; } ::v-deep .el-form--inline .el-form-item__label { color: #a7a7a7; } .body ::v-deep .el-divider { border: 1px solid #eee; width: 99%; margin: 10px auto; } .body ::v-deep .el-form-item { margin-bottom: 0; } .userDialogVisible ::v-deep .el-form-item { margin-bottom: 0; } ::v-deep .el-select__caret { display: flex; align-items: center; justify-content: center; } </style> <style> .el-table .custom-row { background: #f8f8fa; } </style> src/views/zlgl/qxdy.vue
@@ -2,7 +2,7 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button icon="el-icon-download" @click="upload">å¯¼å ¥</el-button> </div> src/views/zzmx/chda.vue
@@ -2,24 +2,27 @@ <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <div class="bodyTopButtonGroup" style="justify-content: space-between;"> <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <!-- <el-button type="primary" icon="el-icon-office-building" @click="office">åä½</el-button>--> <el-button icon="el-icon-refresh-right" @click="syncSeaveSearchUnit" >åæ¥è®¡éåä½ </el-button> <el-button icon="el-icon-refresh-right" @click="syncInventoryFileSelect" >忥åè´§æ¡£æ¡ </el-button> <el-button icon="el-icon-refresh-right" @click="syncStockTypeSelect" >忥åè´§ç±»å </el-button> <div style="display: flex"> <el-button icon="el-icon-refresh-right" @click="syncSeaveSearchUnit" >åæ¥è®¡éåä½ </el-button> <el-button icon="el-icon-refresh-right" @click="syncInventoryFileSelect" >忥åè´§æ¡£æ¡ </el-button> <el-button icon="el-icon-refresh-right" @click="syncStockTypeSelect" >忥åè´§ç±»å </el-button> </div> <!-- <el-button type="primary" icon="el-icon-upload2" @click="upload">å¯¼å ¥</el-button>--> </div>