¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç©æå®¢æ·å
³èä¿¡æ¯å表 |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerList (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºç©æå®¢æ·å
³èä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerToExcel (parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥ç©æå®¢æ·å
³èä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½ç©æå®¢æ·å
³èä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsMaterialCustomerDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/WmsMaterialCustomer/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢ç©æä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel" |
| | | > |
| | | <a-modal title="æ°å¢ç©æä¿¡æ¯" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <!-- tab @change="callback"--> |
| | | <a-tabs default-active-key="1" > |
| | | <a-tabs default-active-key="1"> |
| | | <a-tab-pane key="1" tab="åºæ¬ä¿¡æ¯"> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" tab="æ§å¶å±æ§" force-render> |
| | | <add-control-rule ref="WmsControlRule" @ok="handleOk" /> |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | handleOk(){ |
| | | handleOk() { |
| | | |
| | | }, |
| | | // åå§åæ¹æ³ |
| | |
| | | }) |
| | | values.stationNameParameter = values.stationNameParameterArr.join(',') |
| | | } |
| | | WmsMaterialAdd(values) |
| | | console.log(6666666666666) |
| | | console.log() |
| | | console.log(6666666666666 + 'æ§å¶å±æ§') |
| | | console.log(this.$refs.WmsControlRule.selectedRows) |
| | | var ControlRuleld = this.$refs.WmsControlRule.selectedRows[0].id; |
| | | |
| | | console.log(6666666666666 + 'æ¿ä»£å') |
| | | console.log(this.$refs.addFormWmsSubstituteGood.list) |
| | | |
| | | console.log(6666666666666 + 'å®¢æ·æ¡£æ¡éå') |
| | | console.log(this.$refs.addFormBaseCustomer.list) |
| | | |
| | | var param = { |
| | | value1: values, |
| | | ControlRuleld: ControlRuleld, //æ§å¶å±æ§ |
| | | BaseCustomerList: this.$refs.addFormBaseCustomer.list, //å®¢æ·æ¡£æ¡éå |
| | | SubstituteGoodLis: this.$refs.addFormWmsSubstituteGood.list, //æ¿ä»£å |
| | | value5: {}, |
| | | value6: {}, |
| | | } |
| | | WmsMaterialAdd(param) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.$message.success('æ°å¢æå') |
| | |
| | | }}</a-tag> |
| | | </span> |
| | | |
| | | <span slot="action" slot-scope="text, record"> |
| | | <!-- <span slot="action" slot-scope="text, record"> |
| | | <a-popconfirm v-if="hasPerm('BaseCustomer:delete')" placement="topRight" title="确认å é¤ï¼" |
| | | @confirm="() => itemDelete(record, index)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </span> --> |
| | | </a-table> |
| | | </div> |
| | | </div> |
| | | |
| | | <p @click="visible = true">æ°å¢è¡</p> |
| | | <!-- <p @click="visible = true">æ°å¢è¡</p> --> |
| | | |
| | | <a-modal title="å
è£
å
³ç³»" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | |
| | | <template> |
| | | <a-modal |
| | | <a-modal |
| | | title="æ°å¢æ¿ä»£å管ç" |
| | | :width="900" |
| | | :visible="visible" |
| | |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="æ¿ä»£ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æ¿ä»£ç¼å·" v-decorator="['substituteCode', {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="ç©æåç§°" :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="['substituteMaterialCode', {rules: [{required: true, message: '请è¾å
¥æ¿ä»£åç©æç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¿ä»£åç©æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æ¿ä»£åç©æåç§°" v-decorator="['substituteMaterialName', {rules: [{required: true, message: '请è¾å
¥æ¿ä»£åç©æåç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¿ä»£æ¬¡åº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥æ¿ä»£æ¬¡åº" style="width: 100%" v-decorator="['substituteIndex', {rules: [{required: true, message: '请è¾å
¥æ¿ä»£æ¬¡åºï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | |
| | | </a-spin> <a-form :form="form"> |
| | | <a-form-item label="æ¿ä»£ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æ¿ä»£ç¼å·" |
| | | v-decorator="['substituteCode', { 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="ç©æåç§°" :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="['substituteMaterialCode', { rules: [{ required: true, message: '请è¾å
¥æ¿ä»£åç©æç¼å·ï¼' }] }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¿ä»£åç©æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æ¿ä»£åç©æåç§°" |
| | | v-decorator="['substituteMaterialName', { rules: [{ required: true, message: '请è¾å
¥æ¿ä»£åç©æåç§°ï¼' }] }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¿ä»£æ¬¡åº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥æ¿ä»£æ¬¡åº" style="width: 100%" |
| | | v-decorator="['substituteIndex', { rules: [{ required: true, message: '请è¾å
¥æ¿ä»£æ¬¡åºï¼' }] }]" /> |
| | | </a-form-item> |
| | | <!-- <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled',{rules: [{ required: true, message: 'è¯·éæ©æ¯å¦ç¦ç¨ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </a-form-item> --> |
| | | </a-form> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | import moment from 'moment' |
| | | import { |
| | | WmsSubstituteGoodAdd |
| | | } from '@/api/modular/main/WmsBase/WmsSubstituteGoodManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | } from '@/api/modular/main/WmsBase/WmsSubstituteGoodManage' |
| | | 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) |
| | | } |
| | | }, |
| | | 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(() => { |
| | | 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]) |
| | | } |
| | | }); |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | 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]) |
| | | } |
| | | WmsSubstituteGoodAdd(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 |
| | | } |
| | | this.confirmLoading = false |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | |
| | | |
| | | // WmsSubstituteGoodAdd(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> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <p @click="visible = true">æ°å¢è¡</p> |
| | | <p @click="$refs.showList.add()">æ°å¢è¡</p> |
| | | |
| | | <a-modal title="æ¿ä»£åå表" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <show-list ref="showList" @ok="handleOk" /> |
| | | <!-- <a-spin :spinning="confirmLoading"></a-spin> --> |
| | | </a-modal> |
| | | <show-list ref="showList" @ok="handleSubmit" /> |
| | | |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { WmsOrderRukuDetail } from '@/api/modular/main/WmsOrderManage' |
| | | import showList from './index.vue' |
| | | import showList from './addForm.vue' |
| | | |
| | | export default { |
| | | name: 'wmsOrderRukuManagementDetailDrawer', |
| | |
| | | this.list = [] |
| | | }, |
| | | handleOk(param) { |
| | | this.list = param |
| | | |
| | | }, |
| | | handleSubmit() { |
| | | handleSubmit(item) { |
| | | alert(1) |
| | | this.list.push(item) |
| | | this.visible = false |
| | | }, |
| | | handleCancel() { |
| | |
| | | }, |
| | | itemDelete(record, index) { |
| | | this.list.splice(index, 1) |
| | | }, |
| | | addLine(){ |
| | | this.list.push({ |
| | | |
| | | }) |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢ç©æå®¢æ·å
³èä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç©æID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç©æID" v-decorator="['materialId', {rules: [{required: true, message: '请è¾å
¥ç©æIDï¼'}]}]" /> |
| | | </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="ç©æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç©æåç§°" v-decorator="['materialName', {rules: [{required: true, message: '请è¾å
¥ç©æåç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ID" v-decorator="['custId']" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ç¼å·" v-decorator="['custCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·è±æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·è±æåç§°" v-decorator="['custEnglishName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ä¸æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ä¸æåç§°" v-decorator="['custChinaName']" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsMaterialCustomerAdd |
| | | } from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' |
| | | 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]) |
| | | } |
| | | } |
| | | WmsMaterialCustomerAdd(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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾ç©æå®¢æ·å
³èä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç©æID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç©æID" v-decorator="['materialId', {rules: [{required: true, message: '请è¾å
¥ç©æIDï¼'}]}]" /> |
| | | </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="ç©æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç©æåç§°" v-decorator="['materialName', {rules: [{required: true, message: '请è¾å
¥ç©æåç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ID" v-decorator="['custId']" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ç¼å·" v-decorator="['custCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·è±æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·è±æåç§°" v-decorator="['custEnglishName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ä¸æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ä¸æåç§°" v-decorator="['custChinaName']" /> |
| | | </a-form-item> |
| | | <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsMaterialCustomerEdit |
| | | } from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | Id: 0, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | record: {}, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | edit (record) { |
| | | this.visible = true; |
| | | this.Id = record.id; |
| | | this.$nextTick(() => { |
| | | }); |
| | | //深度æ·è´ ç§»é¤VUEççå¬ï¼é²æ¢INDEX页é¢å¼åå¨ |
| | | this.record = JSON.parse(JSON.stringify(record)) |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue( |
| | | { |
| | | id: record.id, |
| | | materialId: record.materialId, |
| | | materialCode: record.materialCode, |
| | | materialName: record.materialName, |
| | | custId: record.custId, |
| | | custCode: record.custCode, |
| | | custEnglishName: record.custEnglishName, |
| | | custChinaName: record.custChinaName |
| | | } |
| | | ) |
| | | }) |
| | | }, |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (values[key] == null) continue |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | this.record[key] = values[key] |
| | | } else { |
| | | this.record[key] = values[key] |
| | | } |
| | | } |
| | | WmsMaterialCustomerEdit(this.record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('ç¼è¾æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', this.record) |
| | | 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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :width="850" |
| | | :destroyOnClose="true" |
| | | :visible="visible" |
| | | :forceRender="true" |
| | | title="æ¹é导å
¥" |
| | | cancelText="åæ¶ä¸ä¼ " |
| | | okText="å¼å§ä¸ä¼ " |
| | | @cancel="handleCancel" |
| | | @ok="handleSubmit"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-row :span="24"> |
| | | <span>è¯·éæ©è¦å¯¼å
¥çæ°æ®æä»¶ï¼Excelæ ¼å¼ï¼</span> |
| | | </a-row> |
| | | <p></p> |
| | | <a-row> |
| | | <a-col :span="16"> |
| | | <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload"> |
| | | <a-icon style="font-size: 40px;" type="cloud-upload" /> |
| | | </a-upload-dragger> |
| | | </a-col> |
| | | <!--<a-col :span="8"> |
| | | <span>导å
¥æ¨¡å¼ï¼</span> |
| | | <a-select |
| | | style="width: 130px" |
| | | placeholder="è¯·éæ©å¯¼å
¥æ¨¡å¼" |
| | | v-model="importExcelType"> |
| | | <a-select-option |
| | | v-for="(item,index) in importExcelTypeData" |
| | | :key="index" |
| | | :value="item.code">{{ item.name }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-col>--> |
| | | </a-row> |
| | | <a-row :span="24"> |
| | | <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed"> |
| | | ç¹å»æ¥çæä»¶ä¸ä¼ è¦æ± |
| | | </a-button>--> |
| | | <span>ã</span> |
| | | <a-button style="width: 90px;text-align: left;" @click="wmsMaterialCustomerDownloadExcelTemplate" type="link">ä¸è½½å¯¼å
¥æ¨¡æ¿</a-button>ï¼å¡«åå¹¶ä¸ä¼ |
| | | <span>ã</span> |
| | | <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed"> |
| | | æ¶èµ· |
| | | </a-button> |
| | | </a-row> |
| | | <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24"> |
| | | <a-breadcrumb> |
| | | <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">æä»¶ä¸ä¼ è¦æ±</a-breadcrumb-item> |
| | | </a-breadcrumb> |
| | | </a-row> |
| | | <pre v-show="detailed"> |
| | | <div v-html="demandText"></div> |
| | | </pre> |
| | | <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table> |
| | | <pre v-show="detailed"> |
| | | <div v-html="columnText"></div> |
| | | </pre> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util' |
| | | |
| | | import { WmsMaterialCustomerImportExcel, WmsMaterialCustomerDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' |
| | | import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage' |
| | | export default { |
| | | components: { |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | detailed: false, |
| | | confirmLoading: false, |
| | | fileList: [], |
| | | importExcelTypeData: [], |
| | | importExcelType: '1', |
| | | uploadFile: null, |
| | | columns: [], |
| | | dataList: [], |
| | | demandText:'', |
| | | columnText: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | index() { |
| | | this.visible = true; |
| | | this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type') |
| | | this.demandText = parseDemandText("wmsMaterialCustomerDownloadExcelTemplate") |
| | | window.downloadFile = this.wmsMaterialCustomerDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "WmsMaterialCustomer"}).then(res => |
| | | { |
| | | if (res.success) { |
| | | this.columns =[]; |
| | | this.dataList = [{}]; |
| | | res.data.forEach(x => { |
| | | this.columns.push({ |
| | | dataIndex: x.columnName, |
| | | key: x.columnName, |
| | | title: x.columnComment |
| | | }); |
| | | this.dataList[0][x.columnName] = x.isRequired ? "å¿
å¡«" : "éå¿
å¡«" |
| | | }); |
| | | this.columnText = parseExcelFieldText(res.data); |
| | | } |
| | | }); |
| | | }, |
| | | beforeUpload(fileInfo) { |
| | | let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']); |
| | | if (!res.success) { |
| | | this.$message.warning(res.msg) |
| | | return false |
| | | } |
| | | setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000) |
| | | }, |
| | | handleChange(fileInfo) { |
| | | if (fileInfo.file.status === 'error') { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | if (fileInfo.file.status === 'done') { |
| | | if (fileInfo.fileList.length > 1) { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | this.fileList = fileInfo.file |
| | | } |
| | | }, |
| | | handleSubmit() { |
| | | this.confirmLoading = true |
| | | const formData = new FormData() |
| | | formData.append('file', this.uploadFile.file) |
| | | WmsMaterialCustomerImportExcel(formData, {importExcelType: this.importExcelType}).then(res => { |
| | | this.$message.success('æä½æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', []) |
| | | this.handleCancel() |
| | | }).finally((res)=>{this.confirmLoading = false}) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.detailed = false |
| | | }, |
| | | wmsMaterialCustomerDownloadExcelTemplate() { |
| | | WmsMaterialCustomerDownloadExcelTemplate({version: "v2"}).then((res) => { |
| | | downloadFile(res); |
| | | }).catch((err) => { |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | ::v-deep .ant-upload.ant-upload-drag { |
| | | position: relative; |
| | | width: 140px; |
| | | height: 135px; |
| | | text-align: center; |
| | | background: #fafafa; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 2px; |
| | | cursor: pointer; |
| | | -webkit-transition: border-color 0.3s; |
| | | transition: border-color 0.3s; |
| | | } |
| | | ::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { |
| | | color: #ffc53d; |
| | | border-color: white; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <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('WmsMaterialCustomer:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç©æID"> |
| | | <a-input v-model="queryParam.materialId" allow-clear placeholder="请è¾å
¥ç©æID"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç©æç¼å·"> |
| | | <a-input v-model="queryParam.materialCode" allow-clear placeholder="请è¾å
¥ç©æç¼å·"/> |
| | | </a-form-item> |
| | | </a-col><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç©æåç§°"> |
| | | <a-input v-model="queryParam.materialName" allow-clear placeholder="请è¾å
¥ç©æåç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="客æ·ID"> |
| | | <a-input v-model="queryParam.custId" allow-clear placeholder="请è¾å
¥å®¢æ·ID"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="客æ·ç¼å·"> |
| | | <a-input v-model="queryParam.custCode" allow-clear placeholder="请è¾å
¥å®¢æ·ç¼å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="客æ·è±æåç§°"> |
| | | <a-input v-model="queryParam.custEnglishName" allow-clear placeholder="请è¾å
¥å®¢æ·è±æåç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="客æ·ä¸æåç§°"> |
| | | <a-input v-model="queryParam.custChinaName" allow-clear placeholder="请è¾å
¥å®¢æ·ä¸æåç§°"/> |
| | | </a-form-item> |
| | | </a-col> <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <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-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <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-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°"/> |
| | | </a-form-item> |
| | | </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-icon :type="advanced ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <a-card :bordered="false"> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :alert="true" |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{x: true,y:tableHeight}" |
| | | :rowKey="(record) => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsMaterialCustomer:add')" > |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsMaterialCustomer:exportExcel')" icon="download" @click="WmsMaterialCustomerToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsMaterialCustomer:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢ç©æå®¢æ·å
³èä¿¡æ¯</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('WmsMaterialCustomer:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsMaterialCustomer:edit') & hasPerm('WmsMaterialCustomer:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('WmsMaterialCustomer:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsMaterialCustomerDelete(record)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsMaterialCustomerPage, WmsMaterialCustomerDelete, WmsMaterialCustomerToExcel } from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data () { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | current: 1, |
| | | pageSize: 10 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title:'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'ç©æID', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'materialId' |
| | | }, |
| | | { |
| | | title: 'ç©æç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'materialCode' |
| | | }, |
| | | { |
| | | title: 'ç©æåç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'materialName' |
| | | }, |
| | | { |
| | | title: '客æ·ID', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custId' |
| | | }, |
| | | { |
| | | title: '客æ·ç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custCode' |
| | | }, |
| | | { |
| | | title: '客æ·è±æåç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custEnglishName' |
| | | }, |
| | | { |
| | | title: '客æ·ä¸æåç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custChinaName' |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsMaterialCustomerPage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsMaterialCustomer:edit') || this.hasPerm('WmsMaterialCustomer:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if(columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex; |
| | | }) |
| | | if(fObj!=undefined && fObj!=null){ |
| | | element.checked=fObj.checked; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsMaterialCustomerDelete (record) { |
| | | WmsMaterialCustomerDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | WmsMaterialCustomerToExcel() { |
| | | this.loading = true |
| | | 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 { //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsMaterialCustomerPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { |
| | | this.loading = false; |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true); |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item); |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data'; |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(" ")[0] |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) |
| | | }).catch((err) => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | toggleAdvanced () { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk () { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsMaterialCustomerSearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public virtual long? MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public virtual string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public virtual string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ID |
| | | /// </summary> |
| | | public virtual long? CustId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsMaterialCustomerSearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public virtual long? MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public virtual string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public virtual string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ID |
| | | /// </summary> |
| | | public virtual long? CustId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsMaterialCustomerInput |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç©æIDä¸è½ä¸ºç©º")] |
| | | public virtual long MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç©æç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç©æåç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ID |
| | | /// </summary> |
| | | public virtual long? CustId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsMaterialCustomerInput : WmsMaterialCustomerInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsMaterialCustomerInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsMaterialCustomerInput : WmsMaterialCustomerInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsMaterialCustomerInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsMaterialCustomerOutput |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public long MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ID |
| | | /// </summary> |
| | | public long? CustId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | public string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | public string CustChinaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long? Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public interface IWmsMaterialCustomerService |
| | | { |
| | | Task<WmsMaterialCustomerOutput> Get([FromQuery] QueryeWmsMaterialCustomerInput input); |
| | | Task<List<WmsMaterialCustomerOutput>> List([FromQuery] WmsMaterialCustomerInput input); |
| | | Task<PageResult<WmsMaterialCustomerOutput>> Page([FromQuery] WmsMaterialCustomerSearch input); |
| | | Task<List<WmsMaterialCustomerOutput>> ListNonPageAsync([FromQuery] WmsMaterialCustomerSearchNonPage input); |
| | | |
| | | Task Add(AddWmsMaterialCustomerInput input); |
| | | Task Update(UpdateWmsMaterialCustomerInput input); |
| | | Task Delete(DeleteWmsMaterialCustomerInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public class WmsMaterialCustomerMapper : IRegister |
| | | { |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddWmsMaterialCustomerInput, WmsMaterialCustomer>() |
| | | ; |
| | | config.ForType<UpdateWmsMaterialCustomerInput, WmsMaterialCustomer>() |
| | | ; |
| | | config.ForType<WmsMaterialCustomer, WmsMaterialCustomerOutput>() |
| | | ; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.DatabaseAccessor.Extensions; |
| | | using Furion.DependencyInjection; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using Admin.NET.Core; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System.Linq.Dynamic.Core; |
| | | using Microsoft.AspNetCore.Http; |
| | | using System.Text; |
| | | using System.Web; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// ç©æå®¢æ·å
³èä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsMaterialCustomer", Order = 100)] |
| | | [Route("api")] |
| | | public class WmsMaterialCustomerService : IWmsMaterialCustomerService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsMaterialCustomer,MasterDbContextLocator> _wmsMaterialCustomerRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsMaterialCustomerService( |
| | | IRepository<WmsMaterialCustomer,MasterDbContextLocator> wmsMaterialCustomerRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsMaterialCustomerRep = wmsMaterialCustomerRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsMaterialCustomer/page")] |
| | | public async Task<PageResult<WmsMaterialCustomerOutput>> Page([FromQuery] WmsMaterialCustomerSearch input) |
| | | { |
| | | var wmsMaterialCustomers = await _wmsMaterialCustomerRep.DetachedEntities |
| | | .Where(input.MaterialId != null, u => u.MaterialId == input.MaterialId) |
| | | .Where(!string.IsNullOrEmpty(input.MaterialCode), u => u.MaterialCode == input.MaterialCode) |
| | | .Where(!string.IsNullOrEmpty(input.MaterialName), u => u.MaterialName == input.MaterialName) |
| | | .Where(input.CustId != null, u => u.CustId == input.CustId) |
| | | .Where(!string.IsNullOrEmpty(input.CustCode), u => u.CustCode == input.CustCode) |
| | | .Where(!string.IsNullOrEmpty(input.CustEnglishName), u => u.CustEnglishName == input.CustEnglishName) |
| | | .Where(!string.IsNullOrEmpty(input.CustChinaName), u => u.CustChinaName == input.CustChinaName) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderBuilder<WmsMaterialCustomerSearch>(input)) |
| | | .ProjectToType<WmsMaterialCustomerOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return wmsMaterialCustomers; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢ç©æå®¢æ·å
³èä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input">ç©æå®¢æ·å
³èä¿¡æ¯æ¥è¯¢åæ°</param> |
| | | /// <returns>(ç©æå®¢æ·å
³èä¿¡æ¯)å®ä¾å表</returns> |
| | | [HttpGet("WmsMaterialCustomer/listNonPage")] |
| | | public async Task<List<WmsMaterialCustomerOutput>> ListNonPageAsync([FromQuery] WmsMaterialCustomerSearchNonPage input) |
| | | { |
| | | var pMaterialId = input.MaterialId; |
| | | var pMaterialCode = input.MaterialCode?.Trim() ?? ""; |
| | | var pMaterialName = input.MaterialName?.Trim() ?? ""; |
| | | var pCustId = input.CustId; |
| | | var pCustCode = input.CustCode?.Trim() ?? ""; |
| | | var pCustEnglishName = input.CustEnglishName?.Trim() ?? ""; |
| | | var pCustChinaName = input.CustChinaName?.Trim() ?? ""; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var wmsMaterialCustomers = await _wmsMaterialCustomerRep.DetachedEntities |
| | | .Where(pMaterialId != null, u => u.MaterialId == pMaterialId) |
| | | .Where(!string.IsNullOrEmpty(pMaterialCode), u => u.MaterialCode == pMaterialCode) |
| | | .Where(!string.IsNullOrEmpty(pMaterialName), u => u.MaterialName == pMaterialName) |
| | | .Where(pCustId != null, u => u.CustId == pCustId) |
| | | .Where(!string.IsNullOrEmpty(pCustCode), u => u.CustCode == pCustCode) |
| | | .Where(!string.IsNullOrEmpty(pCustEnglishName), u => u.CustEnglishName == pCustEnglishName) |
| | | .Where(!string.IsNullOrEmpty(pCustChinaName), u => u.CustChinaName == pCustChinaName) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) |
| | | .ProjectToType<WmsMaterialCustomerOutput>() |
| | | .ToListAsync(); |
| | | return wmsMaterialCustomers; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åç©æå®¢æ·å
³èä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsMaterialCustomer/detail")] |
| | | public async Task<WmsMaterialCustomerOutput> Get([FromQuery] QueryeWmsMaterialCustomerInput input) |
| | | { |
| | | return (await _wmsMaterialCustomerRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsMaterialCustomerOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åç©æå®¢æ·å
³èä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsMaterialCustomer/list")] |
| | | public async Task<List<WmsMaterialCustomerOutput>> List([FromQuery] WmsMaterialCustomerInput input) |
| | | { |
| | | return await _wmsMaterialCustomerRep.DetachedEntities.ProjectToType<WmsMaterialCustomerOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsMaterialCustomer/add")] |
| | | public async Task Add(AddWmsMaterialCustomerInput input) |
| | | { |
| | | var wmsMaterialCustomer = input.Adapt<WmsMaterialCustomer>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsMaterialCustomer); |
| | | |
| | | wmsMaterialCustomer.CreatedUserId = wmsMaterialCustomer.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsMaterialCustomer.CreatedUserName = wmsMaterialCustomer.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsMaterialCustomer.CreatedTime = wmsMaterialCustomer.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsMaterialCustomerRep.InsertAsync(wmsMaterialCustomer); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsMaterialCustomer/delete")] |
| | | public async Task Delete(DeleteWmsMaterialCustomerInput input) |
| | | { |
| | | var wmsMaterialCustomer = await _wmsMaterialCustomerRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsMaterialCustomerRep.DeleteAsync(wmsMaterialCustomer); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ç©æå®¢æ·å
³èä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsMaterialCustomer/edit")] |
| | | public async Task Update(UpdateWmsMaterialCustomerInput input) |
| | | { |
| | | var isExist = await _wmsMaterialCustomerRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var wmsMaterialCustomer = input.Adapt<WmsMaterialCustomer>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsMaterialCustomer,true); |
| | | |
| | | wmsMaterialCustomer.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsMaterialCustomer.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsMaterialCustomer.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsMaterialCustomerRep.UpdateAsync(wmsMaterialCustomer,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥ç©æå®¢æ·å
³èä¿¡æ¯åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("WmsMaterialCustomer/importExcel")] |
| | | public async Task<int> ImportExcelAsync(IFormFile file) |
| | | { |
| | | int _HeadStartLine = 2;//第1è¡æ¯è¯´æ,第2è¡æ¯åå |
| | | int _DataStartLine = 3;//第3è¡å¼å§æ¯æ°æ® |
| | | |
| | | DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); |
| | | var addList =await CommonImport(importDataTable, _DataStartLine); |
| | | |
| | | lock (_lock) |
| | | { |
| | | _wmsMaterialCustomerRep.InsertAsync(addList); |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | /// </summary> |
| | | /// <param name="dataTable"></param> |
| | | /// <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | /// <returns></returns> |
| | | private async Task<List<WmsMaterialCustomer>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<WmsMaterialCustomer>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new WmsMaterialCustomer() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _MaterialId = "";//ç©æID |
| | | var _MaterialCode = "";//ç©æç¼å· |
| | | var _MaterialName = "";//ç©æåç§° |
| | | var _CustId = "";//客æ·ID |
| | | var _CustCode = "";//客æ·ç¼å· |
| | | var _CustEnglishName = "";//客æ·è±æåç§° |
| | | var _CustChinaName = "";//客æ·ä¸æåç§° |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _MaterialId = row["ç©æID"]?.ToString() ; |
| | | _MaterialCode = row["ç©æç¼å·"]?.ToString() ; |
| | | _MaterialName = row["ç©æåç§°"]?.ToString() ; |
| | | _CustId = row["客æ·ID"]?.ToString() ; |
| | | _CustCode = row["客æ·ç¼å·"]?.ToString() ; |
| | | _CustEnglishName = row["客æ·è±æåç§°"]?.ToString() ; |
| | | _CustChinaName = row["客æ·ä¸æåç§°"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_MaterialId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç©æID]{_MaterialId}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_MaterialId)) |
| | | { |
| | | if (!long.TryParse(_MaterialId, out long outMaterialId)&&!string.IsNullOrEmpty(_MaterialId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç©æID]{_MaterialId}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outMaterialId <= 0&&!string.IsNullOrEmpty(_MaterialId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç©æID]{_MaterialId}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MaterialId = outMaterialId; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_MaterialCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç©æç¼å·]{_MaterialCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_MaterialCode)) |
| | | { |
| | | addItem.MaterialCode = (string)_MaterialCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_MaterialName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç©æåç§°]{_MaterialName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_MaterialName)) |
| | | { |
| | | addItem.MaterialName = (string)_MaterialName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_CustId)) |
| | | { |
| | | if (!long.TryParse(_CustId, out long outCustId)&&!string.IsNullOrEmpty(_CustId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[客æ·ID]{_CustId}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outCustId <= 0&&!string.IsNullOrEmpty(_CustId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[客æ·ID]{_CustId}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.CustId = outCustId; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_CustCode)) |
| | | { |
| | | addItem.CustCode = (string)_CustCode; |
| | | } |
| | | if(!string.IsNullOrEmpty(_CustEnglishName)) |
| | | { |
| | | addItem.CustEnglishName = (string)_CustEnglishName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_CustChinaName)) |
| | | { |
| | | addItem.CustChinaName = (string)_CustChinaName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outId <= 0&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Id = outId; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | details.Add(addItem); |
| | | } |
| | | //éªé |
| | | await CheckExisitForImport(details); |
| | | |
| | | return details; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½ç©æå®¢æ·å
³èä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | [HttpGet("WmsMaterialCustomer/downloadExcelTemplate")] |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsMaterialCustomer{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(ç©æå®¢æ·å
³èä¿¡æ¯).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç§ææ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="isEdit"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisit( WmsMaterialCustomer input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //没æé
ç½®èå主é®ï¼ä¸éè¦éªé |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsMaterialCustomer> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |