iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsFactory/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsFactory/index.vue
@@ -2,7 +2,6 @@ <div ref="boxOutWrap" class="boxOutWrap"> <div ref="boxForm" class="boxForm"> <a-card :bordered="false" :bodyStyle="tstyle"> <div class="table-page-search-wrapper" v-if="hasPerm('WmsFactory:page')"> <a-form layout="inline"> <a-row :gutter="48"> @@ -14,8 +13,8 @@ <a-col :md="8" :sm="24"> <a-form-item label="åç§°"> <a-input v-model="queryParam.factoryName" allow-clear placeholder="请è¾å ¥åç§°"/> </a-form-item> </a-col><template v-if="advanced"> </a-form-item> </a-col ><template v-if="advanced"> <a-col :md="8" :sm="24"> <a-form-item label="å°å"> <a-input v-model="queryParam.factoryAddress" allow-clear placeholder="请è¾å ¥å°å"/> @@ -23,8 +22,15 @@ </a-col> <a-col :md="8" :sm="24"> <a-form-item label="æ¯å¦ç¦ç¨"> <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨"> <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨" > <a-select-option v-for="(item, index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> </a-select> </a-form-item> </a-col> @@ -33,9 +39,18 @@ <a-col :md="8" :sm="24"> <a-form-item label="å建æ¶é´"> <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] }" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime" /> </a-form-item> </a-col> <!--å¹´ææ¥æ¶åç§--> @@ -43,9 +58,18 @@ <a-col :md="8" :sm="24"> <a-form-item label="æ´æ°æ¶é´"> <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] }" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime" /> </a-form-item> </a-col> @@ -58,18 +82,19 @@ <a-form-item label="ä¿®æ¹è åç§°"> <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å ¥ä¿®æ¹è åç§°"/> </a-form-item> </a-col> </template> </a-col> </template> <a-col :md="8" :sm="24" > <span class="table-page-search-submitButtons"> <a-button type="primary" @click="$refs.table.refresh(true)" >æ¥è¯¢</a-button> <a-button style="margin-left: 8px" @click="() => queryParam = {}">éç½®</a-button> <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} <a-button style="margin-left: 8px" @click="() => (queryParam = {})">éç½®</a-button> <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} <a-icon :type="advanced ? 'up' : 'down'"/> </a> </span> </a-col> </a-row> </a-form> </div> @@ -83,17 +108,25 @@ :alert="true" @changeTablePage="pageInfo = $event" :scroll="{x: true,y:tableHeight}" :rowKey="(record) => record.id" :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> :rowKey="record => record.id" :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" > <template class="table-operator" slot="operator" v-if="hasPerm('WmsFactory:add')" > <div ref="actionBar" class="actionBar"> <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()" > å¯¼å ¥ </a-button> <a-button type="info" v-if="hasPerm('WmsFactory:exportExcel')" icon="download" @click="WmsFactoryToExcel()"> å¯¼åº </a-button> <a-button type="primary" v-if="hasPerm('WmsFactory:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢å·¥åä¿¡æ¯è¡¨</a-button> <a-button type="primary" v-if="hasPerm('WmsFactory:add')" icon="plus" @click="$refs.addForm.add()" >æ°å¢å·¥åä¿¡æ¯è¡¨</a-button > </div> </template> <span slot="isDisabledscopedSlots" slot-scope="text"> @@ -106,10 +139,14 @@ <div v-else=""></div> </span> <span slot="action" slot-scope="text, record"> <a v-if="hasPerm('WmsFactory:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> <a-divider type="vertical" v-if="hasPerm('WmsFactory:edit') & hasPerm('WmsFactory:delete')"/> <a-popconfirm v-if="hasPerm('WmsFactory:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsFactoryDelete(record)"> <a-popconfirm v-if="hasPerm('WmsFactory:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsFactoryDelete(record)" > <a>å é¤</a> </a-popconfirm> </span> @@ -319,7 +356,7 @@ tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, // å è½½æ°æ®æ¹æ³ å¿ é¡»ä¸º Promise 对象 loadData: parameter => { return WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then((res) => { return WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then(res => { return res.data }) }, @@ -342,12 +379,12 @@ var _columns = JSON.parse(columnStr) this.columns.forEach(element => { var fObj = _columns.find((item, index) => { return item.dataIndex === element.dataIndex; return item.dataIndex === element.dataIndex }) if(fObj!=undefined && fObj!=null){ element.checked=fObj.checked; element.checked = fObj.checked } }); }) } const isDisabledOption = this.$options this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') @@ -360,7 +397,6 @@ }, false ) }, methods: { moment, @@ -372,7 +408,7 @@ return obj }, WmsFactoryDelete (record) { WmsFactoryDelete(record).then((res) => { WmsFactoryDelete(record).then(res => { if (res.success) { this.$message.success('å 餿å') this.$refs.table.refresh() @@ -382,56 +418,57 @@ }) }, WmsFactoryToExcel() { this.loading = true let entozh = {}; const path = this.$route.path; let entozh = {} const path = this.$route.path if (window.localStorage.getItem(path)) { JSON.parse(window.localStorage.getItem(path)).forEach(item => { if (item.dataIndex != 'action' && item.checked) { entozh[item.dataIndex] = item.title } }) } else { //ç´æ¥ç¹å¯¼åº } else { //ç´æ¥ç¹å¯¼åº this.columns.forEach(item => { if (item.dataIndex != 'action') { entozh[item.dataIndex] = item.title } }) } WmsFactoryPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { this.loading = false; WmsFactoryPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)) .then(res => { this.loading = false //éè¦æªåæ¥æçåæ®µ var arrDataCutout = this.columns.filter(v => v.customCutout == true); var arrDataCutout = this.columns.filter(v => v.customCutout == true) res.data.rows.forEach(item => { var arrKeys = Object.keys(item); var arrKeys = Object.keys(item) arrKeys.forEach(key => { var strFieldDic = key + 'Data'; var strFieldDic = key + 'Data' //æä¸¾è½¬å¼ if (this[strFieldDic] && this[strFieldDic].length > 0) { let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])) if (arrFieldDic.length > 0) { item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼' } } // æ¥ææªå if (arrDataCutout.length > 0) { arrDataCutout.forEach(itemIn => { if (key == itemIn.dataIndex && item[key]) { item[key] = item[key].split(" ")[0] item[key] = item[key].split(' ')[0] } }) } }); }) exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) }).catch((err) => { }) exportExcel(res.data.rows, entozh, 'xlsx', `${this.$route.meta.title}`) }) .catch(err => { this.loading = false this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) }) }, toggleAdvanced () { this.advanced = !this.advanced iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/index.vue
@@ -177,6 +177,8 @@ å¯¼åº </a-button> <a-button type="primary" v-if="hasPerm('WmsMaterial:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢ç©æä¿¡æ¯è¡¨</a-button> <!-- èªå®ä¹ --> <a-button type="primary" v-if="hasPerm('WmsMaterial:add')" icon="plus" @click="$refs.tabForm.add()">æ°å¢tab</a-button> </div> </template> <span slot="isDisabledscopedSlots" slot-scope="text"> @@ -200,6 +202,9 @@ <add-form ref="addForm" @ok="handleOk" /> <edit-form ref="editForm" @ok="handleOk" /> <excel-form ref="excelForm" @ok="handleOk" /> <!-- èªå®ä¹ --> <tab-form ref="tabForm" @ok="handleOk" /> </a-card> </div> </template> @@ -210,6 +215,9 @@ //èªå®ä¹tableé«åº¦ import setTableHtMixin from '@/mixins/handleTableHt.js' import addForm from './addForm.vue' //èªå®ä¹ import tabForm from './tabForm.vue' import { exportExcel } from '@/utils/exportToExcel' import { downloadFile } from '@/utils/util' import editForm from './editForm.vue' @@ -220,7 +228,8 @@ STable, addForm, editForm, excelForm excelForm, tabForm //èªå®ä¹ }, data () { return { iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,154 @@ <template> <a-modal title="æ°å¢ç©æä¿¡æ¯" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel" > <a-spin :spinning="confirmLoading"> <!-- tab --> <a-tabs default-active-key="1" @change="callback"> <a-tab-pane key="1" tab="åºæ¬ä¿¡æ¯"> <add-form ref="addForm" @ok="handleOk" /> </a-tab-pane> <a-tab-pane key="2" tab="æ§å¶å±æ§" force-render> Content of Tab Pane 2 </a-tab-pane> <a-tab-pane key="3" tab="æ¹æ¬¡å±æ§"> Content of Tab Pane 3 </a-tab-pane> <a-tab-pane key="4" tab="æ¿ä»£å管ç"> Content of Tab Pane 4 </a-tab-pane> <a-tab-pane key="5" tab="客æ·"> Content of Tab Pane 5 </a-tab-pane> <a-tab-pane key="7" tab="å è£ å ³ç³»"> Content of Tab Pane 6 </a-tab-pane> </a-tabs> </a-spin> </a-modal> </template> <script> import { WmsMaterialAdd, GetAreas, GetStations } from '@/api/modular/main/WmsMaterialManage' import addForm from './tabItem/addForm.vue' export default { components: { // STable, addForm, // editForm, // excelForm }, data() { return { labelCol: { // xs: { span: 24 }, // sm: { span: 5 } span: 8 }, wrapperCol: { // xs: { span: 24 }, // sm: { span: 15 } span: 13 }, inspectionMethodData: [], materialTypeData: [], areaNameParameterData: [], stationNameParameterData: [], visible: false, confirmLoading: false, form: this.$form.createForm(this) } }, methods: { // åå§åæ¹æ³ add(record) { this.visible = true this.$nextTick(() => { this.getSelects() }) const materialTypeOption = this.$options this.materialTypeData = materialTypeOption.filters['dictData']('material_type') const inspectionMethodOption = this.$options this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection') }, getSelects() { if (this.areaNameParameterData.length <= 0 || this.stationNameParameterData.length <= 0) { this.confirmLoading = true Promise.all([GetAreas(), GetStations()]) .then(response => { this.areaNameParameterData = response[0].data || [] this.stationNameParameterData = response[1].data || [] this.confirmLoading = false }) .catch(() => { this.confirmLoading = false }) } }, /** * æäº¤è¡¨å */ handleSubmit() { const { form: { validateFields } } = this this.confirmLoading = true validateFields((errors, values) => { if (!errors) { if (this.$getObjectType(values.areas) === 'array') { values.areaIds = values.areas.join(',') values.areaNameParameterArr = values.areas.map(val => { return this.parseSelectName(val, 'areaId', 'areaName', 'areaNameParameterData') }) values.areaNameParameter = values.areaNameParameterArr.join(',') } if (this.$getObjectType(values.stations) === 'array') { values.stationIds = values.stations.join(',') values.stationNameParameterArr = values.stations.map(val => { return this.parseSelectName(val, 'stationId', 'stationName', 'stationNameParameterData') }) values.stationNameParameter = values.stationNameParameterArr.join(',') } WmsMaterialAdd(values) .then(res => { if (res.success) { this.$message.success('æ°å¢æå') this.confirmLoading = false this.$emit('ok', values) this.handleCancel() } else { this.$message.error('æ°å¢å¤±è´¥ï¼' + JSON.stringify(res.message)) } }) .finally(res => { this.confirmLoading = false }) } else { this.confirmLoading = false } }) }, parseSelectName(val, field, nfield, pfield) { let res = val for (let i = 0; i < this[pfield].length; i++) { if (val === this[pfield][i][field]) { res = this[pfield][i][nfield] break } } return res }, handleCancel() { this.form.resetFields() this.visible = false } } } </script> iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addForm.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,136 @@ <template> <!-- åºæ¬ä¿¡æ¯ --> <a-form :form="form"> <a-form-item label="ç©æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ç©æåç§°" v-decorator="['materialName', {rules: [{required: true, message: '请è¾å ¥ç©æåç§°ï¼'}]}]" /> </a-form-item> <a-form-item label="ç©æç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ç©æç¼å·" v-decorator="['materialCode', {rules: [{required: true, message: '请è¾å ¥ç©æç¼å·ï¼'}]}]" /> </a-form-item> <a-form-item label="ERPç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ERPç¼å·" v-decorator="['erpCode']" /> </a-form-item> <a-form-item label="ç©æç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ç©æç±»ååç§°" v-decorator="['materialTypeName']" /> </a-form-item> <a-form-item label="ç©æç±»åæè¿°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ç©æç±»åæè¿°" v-decorator="['materialTypeDescr']" /> </a-form-item> <a-form-item label="ç©æç±»å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input-number placeholder="请è¾å ¥ç©æç±»å" style="width: 100%" v-decorator="['materialType']" /> </a-form-item> <a-form-item label="ç©æç»" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ç©æç»" v-decorator="['materialGroup']" /> </a-form-item> <a-form-item label="ABCåç±»åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ABCåç±»åç§°" v-decorator="['aBCClassName']" /> </a-form-item> <a-form-item label="ABCåç±»" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input-number placeholder="请è¾å ¥ABCåç±»" style="width: 100%" v-decorator="['aBCClass']" /> </a-form-item> <a-form-item label="ç©æè§æ ¼" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥ç©æè§æ ¼" v-decorator="['materialSpec']" /> </a-form-item> <a-form-item label="é»è®¤å ¥åºåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥é»è®¤å ¥åºåºä½" v-decorator="['inPlaceCode']" /> </a-form-item> <a-form-item label="åºååä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥åºååä½" v-decorator="['materialUnit']" /> </a-form-item> <a-form-item label="éè´åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥éè´åä½" v-decorator="['pOUnit']" /> </a-form-item> <a-form-item label="é¢è²" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥é¢è²" v-decorator="['color']" /> </a-form-item> <a-form-item label="éé" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥éé" v-decorator="['weight']" /> </a-form-item> <a-form-item label="æ å æ°é" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥æ å æ°é" v-decorator="['sNP']" /> </a-form-item> <a-form-item label="æ¢ç®ç" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥æ¢ç®ç" v-decorator="['translateRate']" /> </a-form-item> <a-form-item label="æ¹æ¬¡å±æ§è§å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥æ¹æ¬¡å±æ§è§å" v-decorator="['batchRuleId']" /> </a-form-item> <a-form-item label="æ§å¶å±æ§è§å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥æ§å¶å±æ§è§å" v-decorator="['controlRuleId']" /> </a-form-item> <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> </a-form-item> <a-form-item label="æè¿°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请è¾å ¥æè¿°" v-decorator="['materialDesc']" /> </a-form-item> </a-form> </template> <script> import moment from 'moment' import { WmsMaterialAdd } from '@/api/modular/main/WmsBase/WmsMaterialManage' export default { data () { return { labelCol: { xs: { span: 24 }, sm: { span: 5 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 15 } }, visible: false, confirmLoading: false, form: this.$form.createForm(this) } }, methods: { moment, // åå§åæ¹æ³ add (record) { this.visible = true this.$nextTick(() => { }); }, /** * æäº¤è¡¨å */ handleSubmit () { const { form: { validateFields } } = this this.confirmLoading = true validateFields((errors, values) => { if (!errors) { for (const key in values) { if (typeof (values[key]) === 'object') { values[key] = JSON.stringify(values[key]) } } WmsMaterialAdd(values).then((res) => { if (res.success) { this.$message.success('æ°å¢æå') this.confirmLoading = false this.$emit('ok', values) this.handleCancel() } else { this.$message.error('æ°å¢å¤±è´¥ï¼' + JSON.stringify(res.message)) } }).finally((res) => { this.confirmLoading = false }) } else { this.confirmLoading = false } }) }, handleCancel () { this.form.resetFields() this.visible = false } } } </script>