Merge branch 'master' of http://222.71.245.114:9086/r/iWare_RawMaterialWarehouse
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å®¢æ·æ¡£æ¡ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerPage (parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å®¢æ·æ¡£æ¡å表 |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerList (parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å å®¢æ·æ¡£æ¡ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerAdd (parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾å®¢æ·æ¡£æ¡ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerEdit (parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤å®¢æ·æ¡£æ¡ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerDelete (parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºå®¢æ·æ¡£æ¡çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerToExcel (parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥å®¢æ·æ¡£æ¡çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½å®¢æ·æ¡£æ¡çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function BaseCustomerDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/BaseCustomer/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="客æ·ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ç¼å·" v-decorator="['custCode', {rules: [{required: true, message: '请è¾å
¥å®¢æ·ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ä¸æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ä¸æåç§°" v-decorator="['custChinaName', {rules: [{required: true, message: '请è¾å
¥å®¢æ·ä¸æåç§°ï¼'}]}]" /> |
| | | </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="['mnemonicCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥ç±»å" style="width: 100%" v-decorator="['custType', {rules: [{required: true, message: '请è¾å
¥ç±»åï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»ååç§°" v-decorator="['custTypeName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="è系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥è系人" v-decorator="['linkMan']" /> |
| | | </a-form-item> |
| | | <a-form-item label="çµè¯" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥çµè¯" v-decorator="['phone']" /> |
| | | </a-form-item> |
| | | <a-form-item label="çµåé®ä»¶" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥çµåé®ä»¶" v-decorator="['email']" /> |
| | | </a-form-item> |
| | | <a-form-item label="é®ç¼" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é®ç¼" v-decorator="['zipCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç份" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç份" v-decorator="['province']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åå¸" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åå¸" v-decorator="['city']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å°å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å°å" v-decorator="['address']" /> |
| | | </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> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | BaseCustomerAdd |
| | | } from '@/api/modular/main/WmsBase/BaseCustomerManage' |
| | | 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]) |
| | | } |
| | | } |
| | | BaseCustomerAdd(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="客æ·ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ç¼å·" v-decorator="['custCode', {rules: [{required: true, message: '请è¾å
¥å®¢æ·ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ä¸æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ä¸æåç§°" v-decorator="['custChinaName', {rules: [{required: true, message: '请è¾å
¥å®¢æ·ä¸æåç§°ï¼'}]}]" /> |
| | | </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="['mnemonicCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥ç±»å" style="width: 100%" v-decorator="['custType', {rules: [{required: true, message: '请è¾å
¥ç±»åï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»ååç§°" v-decorator="['custTypeName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="è系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥è系人" v-decorator="['linkMan']" /> |
| | | </a-form-item> |
| | | <a-form-item label="çµè¯" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥çµè¯" v-decorator="['phone']" /> |
| | | </a-form-item> |
| | | <a-form-item label="çµåé®ä»¶" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥çµåé®ä»¶" v-decorator="['email']" /> |
| | | </a-form-item> |
| | | <a-form-item label="é®ç¼" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é®ç¼" v-decorator="['zipCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç份" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç份" v-decorator="['province']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åå¸" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åå¸" v-decorator="['city']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å°å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å°å" v-decorator="['address']" /> |
| | | </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 v-show="false"><a-input v-decorator="['id']" /></a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | BaseCustomerEdit |
| | | } from '@/api/modular/main/WmsBase/BaseCustomerManage' |
| | | 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, |
| | | custCode: record.custCode, |
| | | custChinaName: record.custChinaName, |
| | | custEnglishName: record.custEnglishName, |
| | | mnemonicCode: record.mnemonicCode, |
| | | custType: record.custType, |
| | | custTypeName: record.custTypeName, |
| | | linkMan: record.linkMan, |
| | | phone: record.phone, |
| | | email: record.email, |
| | | zipCode: record.zipCode, |
| | | province: record.province, |
| | | city: record.city, |
| | | address: record.address, |
| | | isDisabled: record.isDisabled |
| | | } |
| | | ) |
| | | }) |
| | | }, |
| | | 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] |
| | | } |
| | | } |
| | | BaseCustomerEdit(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="baseCustomerDownloadExcelTemplate" 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 { BaseCustomerImportExcel, BaseCustomerDownloadExcelTemplate} from '@/api/modular/main/WmsBase/BaseCustomerManage' |
| | | 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("baseCustomerDownloadExcelTemplate") |
| | | window.downloadFile = this.baseCustomerDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "BaseCustomer"}).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) |
| | | BaseCustomerImportExcel(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 |
| | | }, |
| | | baseCustomerDownloadExcelTemplate() { |
| | | BaseCustomerDownloadExcelTemplate({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('BaseCustomer:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <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.custChinaName" 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.custEnglishName" allow-clear placeholder="请è¾å
¥å®¢æ·è±æåç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å©è®°ç "> |
| | | <a-input v-model="queryParam.mnemonicCode" allow-clear placeholder="请è¾å
¥å©è®°ç "/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç±»å"> |
| | | <a-input-number v-model="queryParam.custType" style="width: 100%" allow-clear placeholder="请è¾å
¥ç±»å"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç±»ååç§°"> |
| | | <a-input v-model="queryParam.custTypeName" allow-clear placeholder="请è¾å
¥ç±»ååç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="è系人"> |
| | | <a-input v-model="queryParam.linkMan" allow-clear placeholder="请è¾å
¥è系人"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="çµè¯"> |
| | | <a-input v-model="queryParam.phone" allow-clear placeholder="请è¾å
¥çµè¯"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="çµåé®ä»¶"> |
| | | <a-input v-model="queryParam.email" allow-clear placeholder="请è¾å
¥çµåé®ä»¶"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="é®ç¼"> |
| | | <a-input v-model="queryParam.zipCode" allow-clear placeholder="请è¾å
¥é®ç¼"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç份"> |
| | | <a-input v-model="queryParam.province" allow-clear placeholder="请è¾å
¥ç份"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åå¸"> |
| | | <a-input v-model="queryParam.city" allow-clear placeholder="请è¾å
¥åå¸"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å°å"> |
| | | <a-input v-model="queryParam.address" allow-clear placeholder="请è¾å
¥å°å"/> |
| | | </a-form-item> |
| | | </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> |
| | | </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('BaseCustomer: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('BaseCustomer:exportExcel')" icon="download" @click="BaseCustomerToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('BaseCustomer:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢å®¢æ·æ¡£æ¡</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('BaseCustomer:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('BaseCustomer:edit') & hasPerm('BaseCustomer:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('BaseCustomer:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => BaseCustomerDelete(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 { BaseCustomerPage, BaseCustomerDelete, BaseCustomerToExcel } from '@/api/modular/main/WmsBase/BaseCustomerManage' |
| | | //èªå®ä¹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: '客æ·ç¼å·', |
| | | 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: 'custChinaName' |
| | | }, |
| | | { |
| | | 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: 'mnemonicCode' |
| | | }, |
| | | { |
| | | title: 'ç±»å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custType' |
| | | }, |
| | | { |
| | | title: 'ç±»ååç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'custTypeName' |
| | | }, |
| | | { |
| | | title: 'è系人', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'linkMan' |
| | | }, |
| | | { |
| | | title: 'çµè¯', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'phone' |
| | | }, |
| | | { |
| | | title: 'çµåé®ä»¶', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'email' |
| | | }, |
| | | { |
| | | title: 'é®ç¼', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'zipCode' |
| | | }, |
| | | { |
| | | title: 'ç份', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'province' |
| | | }, |
| | | { |
| | | title: 'åå¸', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'city' |
| | | }, |
| | | { |
| | | title: 'å°å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'address' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | 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 BaseCustomerPage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('BaseCustomer:edit') || this.hasPerm('BaseCustomer: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; |
| | | } |
| | | }); |
| | | } |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | BaseCustomerDelete (record) { |
| | | BaseCustomerDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | BaseCustomerToExcel() { |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | BaseCustomerPage(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> |
| | |
| | | <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('WmsFactory:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç¼å·"> |
| | | <a-input v-model="queryParam.factoryCode" allow-clear placeholder="请è¾å
¥ç¼å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <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"> |
| | | <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"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å°å"> |
| | | <a-input v-model="queryParam.factoryAddress" allow-clear placeholder="请è¾å
¥å°å"/> |
| | | </a-form-item> |
| | | </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> |
| | | </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 label="ç¼å·"> |
| | | <a-input v-model="queryParam.factoryCode" 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-form-item label="åç§°"> |
| | | <a-input v-model="queryParam.factoryName" 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.factoryAddress" allow-clear placeholder="请è¾å
¥å°å" /> |
| | | </a-form-item> |
| | | </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> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <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-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-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <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('WmsFactory: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('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> |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <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)"> |
| | | @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('WmsFactory: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('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 |
| | | > |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text === true"> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text == false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <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>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsFactoryPage, WmsFactoryDelete, WmsFactoryToExcel } from '@/api/modular/main/WmsBase/WmsFactoryManage' |
| | | //èªå®ä¹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: { |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsFactoryPage, WmsFactoryDelete, WmsFactoryToExcel } from '@/api/modular/main/WmsBase/WmsFactoryManage' |
| | | //èªå®ä¹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: 'ç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryCode' |
| | | }, |
| | | { |
| | | title: 'åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryName' |
| | | }, |
| | | { |
| | | title: 'å°å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryAddress' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | 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 WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsFactory:edit') || this.hasPerm('WmsFactory: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; |
| | | } |
| | | }); |
| | | } |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | columns: [ |
| | | { |
| | | title: 'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'ç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryCode' |
| | | }, |
| | | { |
| | | title: 'åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryName' |
| | | }, |
| | | { |
| | | title: 'å°å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryAddress' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | 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 WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then(res => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created() { |
| | | if (this.hasPerm('WmsFactory:edit') || this.hasPerm('WmsFactory: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 |
| | | } |
| | | }) |
| | | } |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsFactoryDelete (record) { |
| | | WmsFactoryDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate() { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsFactoryDelete(record) { |
| | | WmsFactoryDelete(record).then(res => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | WmsFactoryToExcel() { |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | WmsFactoryPage(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) |
| | | }) |
| | | }, |
| | | |
| | | WmsFactoryToExcel() { |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | WmsFactoryPage(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 |
| | | } |
| | | } |
| | | } |
| | | 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; |
| | | } |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
| | |
| | | å¯¼åº |
| | | </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"> |
| | |
| | | <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> |
| | |
| | | //èªå®ä¹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' |
| | |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | excelForm, |
| | | tabForm //èªå®ä¹ |
| | | }, |
| | | data () { |
| | | return { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="客æ·"> |
| | | <add-form-base-customer ref="addFormBaseCustomer" @ok="handleOk" /> |
| | | </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' |
| | | import addFormBaseCustomer from './tabItem/addFormBaseCustomer.vue' |
| | | |
| | | export default { |
| | | components: { |
| | | // STable, |
| | | addForm, |
| | | addFormBaseCustomer, |
| | | |
| | | // 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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- æ°å¢å®¢æ·æ¡£æ¡ --> |
| | | <a-form :form="form"> |
| | | <a-form-item label="客æ·ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ç¼å·" v-decorator="['custCode', {rules: [{required: true, message: '请è¾å
¥å®¢æ·ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="客æ·ä¸æåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¢æ·ä¸æåç§°" v-decorator="['custChinaName', {rules: [{required: true, message: '请è¾å
¥å®¢æ·ä¸æåç§°ï¼'}]}]" /> |
| | | </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="['mnemonicCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥ç±»å" style="width: 100%" v-decorator="['custType', {rules: [{required: true, message: '请è¾å
¥ç±»åï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»ååç§°" v-decorator="['custTypeName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="è系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥è系人" v-decorator="['linkMan']" /> |
| | | </a-form-item> |
| | | <a-form-item label="çµè¯" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥çµè¯" v-decorator="['phone']" /> |
| | | </a-form-item> |
| | | <a-form-item label="çµåé®ä»¶" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥çµåé®ä»¶" v-decorator="['email']" /> |
| | | </a-form-item> |
| | | <a-form-item label="é®ç¼" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é®ç¼" v-decorator="['zipCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç份" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç份" v-decorator="['province']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åå¸" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åå¸" v-decorator="['city']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å°å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å°å" v-decorator="['address']" /> |
| | | </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> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | BaseCustomerAdd |
| | | } from '@/api/modular/main/WmsBase/BaseCustomerManage' |
| | | 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]) |
| | | } |
| | | } |
| | | BaseCustomerAdd(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> |
| | |
| | | <param name="Aisle"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.BaseCustomerService"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡æå¡ |
| | | </summary> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.Page(Admin.NET.Application.BaseCustomerSearch)"> |
| | | <summary> |
| | | å页æ¥è¯¢å®¢æ·æ¡£æ¡ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.ListNonPageAsync(Admin.NET.Application.BaseCustomerSearchNonPage)"> |
| | | <summary> |
| | | ä¸å页æ¥è¯¢å®¢æ·æ¡£æ¡å表 |
| | | </summary> |
| | | <param name="input">å®¢æ·æ¡£æ¡æ¥è¯¢åæ°</param> |
| | | <returns>(å®¢æ·æ¡£æ¡)å®ä¾å表</returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.Get(Admin.NET.Application.QueryeBaseCustomerInput)"> |
| | | <summary> |
| | | è·åå®¢æ·æ¡£æ¡ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.List(Admin.NET.Application.BaseCustomerInput)"> |
| | | <summary> |
| | | è·åå®¢æ·æ¡£æ¡å表 |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.Add(Admin.NET.Application.AddBaseCustomerInput)"> |
| | | <summary> |
| | | å¢å å®¢æ·æ¡£æ¡ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.Delete(Admin.NET.Application.DeleteBaseCustomerInput)"> |
| | | <summary> |
| | | å é¤å®¢æ·æ¡£æ¡ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.Update(Admin.NET.Application.UpdateBaseCustomerInput)"> |
| | | <summary> |
| | | æ´æ°å®¢æ·æ¡£æ¡ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.ImportExcelAsync(Microsoft.AspNetCore.Http.IFormFile)"> |
| | | <summary> |
| | | Excel模æ¿å¯¼å
¥å®¢æ·æ¡£æ¡åè½ |
| | | </summary> |
| | | <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | <returns>导å
¥çè®°å½æ°</returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.CommonImport(System.Data.DataTable,System.Int32)"> |
| | | <summary> |
| | | DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | </summary> |
| | | <param name="dataTable"></param> |
| | | <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.DownloadExcelTemplate(System.String)"> |
| | | <summary> |
| | | æ ¹æ®çæ¬ä¸è½½å®¢æ·æ¡£æ¡çExcel导å
¥æ¨¡æ¿ |
| | | </summary> |
| | | <param name="version">模æ¿çæ¬</param> |
| | | <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.CheckExisit(Admin.NET.Core.BaseCustomer,System.Boolean)"> |
| | | <summary> |
| | | æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | </summary> |
| | | <param name="input"></param> |
| | | <param name="isEdit"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.BaseCustomerService.CheckExisitForImport(System.Collections.Generic.List{Admin.NET.Core.BaseCustomer})"> |
| | | <summary> |
| | | æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | </summary> |
| | | <param name="inputs"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.BaseCustomerSearch"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡æ¥è¯¢åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.CustCode"> |
| | | <summary> |
| | | 客æ·ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.CustChinaName"> |
| | | <summary> |
| | | 客æ·ä¸æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.CustEnglishName"> |
| | | <summary> |
| | | 客æ·è±æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.MnemonicCode"> |
| | | <summary> |
| | | å©è®°ç |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.CustType"> |
| | | <summary> |
| | | ç±»å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.CustTypeName"> |
| | | <summary> |
| | | ç±»ååç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.LinkMan"> |
| | | <summary> |
| | | è系人 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.Phone"> |
| | | <summary> |
| | | çµè¯ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.Email"> |
| | | <summary> |
| | | çµåé®ä»¶ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.ZipCode"> |
| | | <summary> |
| | | é®ç¼ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.Province"> |
| | | <summary> |
| | | ç份 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.City"> |
| | | <summary> |
| | | åå¸ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.Address"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.CreatedTime"> |
| | | <summary> |
| | | å建æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.UpdatedTime"> |
| | | <summary> |
| | | æ´æ°æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.CreatedUserName"> |
| | | <summary> |
| | | å建è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearch.UpdatedUserName"> |
| | | <summary> |
| | | ä¿®æ¹è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.BaseCustomerSearchNonPage"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡ä¸å页æ¥è¯¢åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CustCode"> |
| | | <summary> |
| | | 客æ·ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CustChinaName"> |
| | | <summary> |
| | | 客æ·ä¸æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CustEnglishName"> |
| | | <summary> |
| | | 客æ·è±æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.MnemonicCode"> |
| | | <summary> |
| | | å©è®°ç |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CustType"> |
| | | <summary> |
| | | ç±»å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CustTypeName"> |
| | | <summary> |
| | | ç±»ååç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.LinkMan"> |
| | | <summary> |
| | | è系人 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.Phone"> |
| | | <summary> |
| | | çµè¯ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.Email"> |
| | | <summary> |
| | | çµåé®ä»¶ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.ZipCode"> |
| | | <summary> |
| | | é®ç¼ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.Province"> |
| | | <summary> |
| | | ç份 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.City"> |
| | | <summary> |
| | | åå¸ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.Address"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CreatedTime"> |
| | | <summary> |
| | | å建æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.UpdatedTime"> |
| | | <summary> |
| | | æ´æ°æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CreatedUserName"> |
| | | <summary> |
| | | å建è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.UpdatedUserName"> |
| | | <summary> |
| | | ä¿®æ¹è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.BaseCustomerInput"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡è¾å
¥åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.CustCode"> |
| | | <summary> |
| | | 客æ·ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.CustChinaName"> |
| | | <summary> |
| | | 客æ·ä¸æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.CustEnglishName"> |
| | | <summary> |
| | | 客æ·è±æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.MnemonicCode"> |
| | | <summary> |
| | | å©è®°ç |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.CustType"> |
| | | <summary> |
| | | ç±»å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.CustTypeName"> |
| | | <summary> |
| | | ç±»ååç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.LinkMan"> |
| | | <summary> |
| | | è系人 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.Phone"> |
| | | <summary> |
| | | çµè¯ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.Email"> |
| | | <summary> |
| | | çµåé®ä»¶ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.ZipCode"> |
| | | <summary> |
| | | é®ç¼ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.Province"> |
| | | <summary> |
| | | ç份 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.City"> |
| | | <summary> |
| | | åå¸ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.Address"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerInput.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.AddBaseCustomerInput"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡æ°å¢åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.DeleteBaseCustomerInput"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡å é¤åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.UpdateBaseCustomerInput"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡æ´æ°åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.UpdateBaseCustomerInput.Id"> |
| | | <summary> |
| | | Idä¸»é® |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.QueryeBaseCustomerInput"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡è·ååä¸ªåæ° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.BaseCustomerOutput"> |
| | | <summary> |
| | | å®¢æ·æ¡£æ¡è¾åºåæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.CustCode"> |
| | | <summary> |
| | | 客æ·ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.CustChinaName"> |
| | | <summary> |
| | | 客æ·ä¸æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.CustEnglishName"> |
| | | <summary> |
| | | 客æ·è±æåç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.MnemonicCode"> |
| | | <summary> |
| | | å©è®°ç |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.CustType"> |
| | | <summary> |
| | | ç±»å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.CustTypeName"> |
| | | <summary> |
| | | ç±»ååç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.LinkMan"> |
| | | <summary> |
| | | è系人 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.Phone"> |
| | | <summary> |
| | | çµè¯ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.Email"> |
| | | <summary> |
| | | çµåé®ä»¶ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.ZipCode"> |
| | | <summary> |
| | | é®ç¼ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.Province"> |
| | | <summary> |
| | | ç份 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.City"> |
| | | <summary> |
| | | åå¸ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.Address"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.Id"> |
| | | <summary> |
| | | Idä¸»é® |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.CreatedTime"> |
| | | <summary> |
| | | å建æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.UpdatedTime"> |
| | | <summary> |
| | | æ´æ°æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.CreatedUserName"> |
| | | <summary> |
| | | å建è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.BaseCustomerOutput.UpdatedUserName"> |
| | | <summary> |
| | | ä¿®æ¹è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.WmsFactorySearch"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨æ¥è¯¢åæ° |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 = "BaseCustomer", Order = 100)] |
| | | [Route("api")] |
| | | public class BaseCustomerService : IBaseCustomerService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<BaseCustomer,MasterDbContextLocator> _baseCustomerRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public BaseCustomerService( |
| | | IRepository<BaseCustomer,MasterDbContextLocator> baseCustomerRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _baseCustomerRep = baseCustomerRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢å®¢æ·æ¡£æ¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("BaseCustomer/page")] |
| | | public async Task<PageResult<BaseCustomerOutput>> Page([FromQuery] BaseCustomerSearch input) |
| | | { |
| | | var baseCustomers = await _baseCustomerRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.CustCode), u => u.CustCode == input.CustCode) |
| | | .Where(!string.IsNullOrEmpty(input.CustChinaName), u => EF.Functions.Like(u.CustChinaName, $"%{input.CustChinaName.Trim()}%")) |
| | | .Where(!string.IsNullOrEmpty(input.CustEnglishName), u => u.CustEnglishName == input.CustEnglishName) |
| | | .Where(!string.IsNullOrEmpty(input.MnemonicCode), u => u.MnemonicCode == input.MnemonicCode) |
| | | .Where(input.CustType != null, u => u.CustType == input.CustType) |
| | | .Where(!string.IsNullOrEmpty(input.CustTypeName), u => u.CustTypeName == input.CustTypeName) |
| | | .Where(!string.IsNullOrEmpty(input.LinkMan), u => u.LinkMan == input.LinkMan) |
| | | .Where(!string.IsNullOrEmpty(input.Phone), u => u.Phone == input.Phone) |
| | | .Where(!string.IsNullOrEmpty(input.Email), u => u.Email == input.Email) |
| | | .Where(!string.IsNullOrEmpty(input.ZipCode), u => u.ZipCode == input.ZipCode) |
| | | .Where(!string.IsNullOrEmpty(input.Province), u => u.Province == input.Province) |
| | | .Where(!string.IsNullOrEmpty(input.City), u => u.City == input.City) |
| | | .Where(!string.IsNullOrEmpty(input.Address), u => u.Address == input.Address) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .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<BaseCustomerSearch>(input)) |
| | | .ProjectToType<BaseCustomerOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return baseCustomers; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢å®¢æ·æ¡£æ¡å表 |
| | | /// </summary> |
| | | /// <param name="input">å®¢æ·æ¡£æ¡æ¥è¯¢åæ°</param> |
| | | /// <returns>(å®¢æ·æ¡£æ¡)å®ä¾å表</returns> |
| | | [HttpGet("BaseCustomer/listNonPage")] |
| | | public async Task<List<BaseCustomerOutput>> ListNonPageAsync([FromQuery] BaseCustomerSearchNonPage input) |
| | | { |
| | | var pCustCode = input.CustCode?.Trim() ?? ""; |
| | | var pCustChinaName = input.CustChinaName?.Trim() ?? ""; |
| | | var pCustEnglishName = input.CustEnglishName?.Trim() ?? ""; |
| | | var pMnemonicCode = input.MnemonicCode?.Trim() ?? ""; |
| | | var pCustType = input.CustType; |
| | | var pCustTypeName = input.CustTypeName?.Trim() ?? ""; |
| | | var pLinkMan = input.LinkMan?.Trim() ?? ""; |
| | | var pPhone = input.Phone?.Trim() ?? ""; |
| | | var pEmail = input.Email?.Trim() ?? ""; |
| | | var pZipCode = input.ZipCode?.Trim() ?? ""; |
| | | var pProvince = input.Province?.Trim() ?? ""; |
| | | var pCity = input.City?.Trim() ?? ""; |
| | | var pAddress = input.Address?.Trim() ?? ""; |
| | | var pIsDisabled = input.IsDisabled; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var baseCustomers = await _baseCustomerRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pCustCode), u => u.CustCode == pCustCode) |
| | | .Where(!string.IsNullOrEmpty(pCustChinaName), u => EF.Functions.Like(u.CustChinaName, $"%{pCustChinaName}%")) |
| | | .Where(!string.IsNullOrEmpty(pCustEnglishName), u => u.CustEnglishName == pCustEnglishName) |
| | | .Where(!string.IsNullOrEmpty(pMnemonicCode), u => u.MnemonicCode == pMnemonicCode) |
| | | .Where(pCustType != null, u => u.CustType == pCustType) |
| | | .Where(!string.IsNullOrEmpty(pCustTypeName), u => u.CustTypeName == pCustTypeName) |
| | | .Where(!string.IsNullOrEmpty(pLinkMan), u => u.LinkMan == pLinkMan) |
| | | .Where(!string.IsNullOrEmpty(pPhone), u => u.Phone == pPhone) |
| | | .Where(!string.IsNullOrEmpty(pEmail), u => u.Email == pEmail) |
| | | .Where(!string.IsNullOrEmpty(pZipCode), u => u.ZipCode == pZipCode) |
| | | .Where(!string.IsNullOrEmpty(pProvince), u => u.Province == pProvince) |
| | | .Where(!string.IsNullOrEmpty(pCity), u => u.City == pCity) |
| | | .Where(!string.IsNullOrEmpty(pAddress), u => u.Address == pAddress) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .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<BaseCustomerOutput>() |
| | | .ToListAsync(); |
| | | return baseCustomers; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå®¢æ·æ¡£æ¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("BaseCustomer/detail")] |
| | | public async Task<BaseCustomerOutput> Get([FromQuery] QueryeBaseCustomerInput input) |
| | | { |
| | | return (await _baseCustomerRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<BaseCustomerOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå®¢æ·æ¡£æ¡å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("BaseCustomer/list")] |
| | | public async Task<List<BaseCustomerOutput>> List([FromQuery] BaseCustomerInput input) |
| | | { |
| | | return await _baseCustomerRep.DetachedEntities.ProjectToType<BaseCustomerOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å å®¢æ·æ¡£æ¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("BaseCustomer/add")] |
| | | public async Task Add(AddBaseCustomerInput input) |
| | | { |
| | | var baseCustomer = input.Adapt<BaseCustomer>(); |
| | | //éªè¯ |
| | | await CheckExisit(baseCustomer); |
| | | |
| | | baseCustomer.CreatedUserId = baseCustomer.UpdatedUserId = SysHelper.GetUserId(); |
| | | baseCustomer.CreatedUserName = baseCustomer.UpdatedUserName = SysHelper.GetUserName(); |
| | | baseCustomer.CreatedTime = baseCustomer.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _baseCustomerRep.InsertAsync(baseCustomer); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å®¢æ·æ¡£æ¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("BaseCustomer/delete")] |
| | | public async Task Delete(DeleteBaseCustomerInput input) |
| | | { |
| | | var baseCustomer = await _baseCustomerRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _baseCustomerRep.DeleteAsync(baseCustomer); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°å®¢æ·æ¡£æ¡ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("BaseCustomer/edit")] |
| | | public async Task Update(UpdateBaseCustomerInput input) |
| | | { |
| | | var isExist = await _baseCustomerRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var baseCustomer = input.Adapt<BaseCustomer>(); |
| | | //éªè¯ |
| | | await CheckExisit(baseCustomer,true); |
| | | |
| | | baseCustomer.UpdatedUserId = SysHelper.GetUserId(); |
| | | baseCustomer.UpdatedUserName = SysHelper.GetUserName(); |
| | | baseCustomer.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _baseCustomerRep.UpdateAsync(baseCustomer,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥å®¢æ·æ¡£æ¡åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("BaseCustomer/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) |
| | | { |
| | | _baseCustomerRep.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<BaseCustomer>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<BaseCustomer>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new BaseCustomer() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _CustCode = "";//客æ·ç¼å· |
| | | var _CustChinaName = "";//客æ·ä¸æåç§° |
| | | var _CustEnglishName = "";//客æ·è±æåç§° |
| | | var _MnemonicCode = "";//å©è®°ç |
| | | var _CustType = "";//ç±»å |
| | | var _CustTypeName = "";//ç±»ååç§° |
| | | var _LinkMan = "";//è系人 |
| | | var _Phone = "";//çµè¯ |
| | | var _Email = "";//çµåé®ä»¶ |
| | | var _ZipCode = "";//é®ç¼ |
| | | var _Province = "";//ç份 |
| | | var _City = "";//åå¸ |
| | | var _Address = "";//å°å |
| | | var _IsDisabled = "";//æ¯å¦ç¦ç¨ |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _CustCode = row["客æ·ç¼å·"]?.ToString() ; |
| | | _CustChinaName = row["客æ·ä¸æåç§°"]?.ToString() ; |
| | | _CustEnglishName = row["客æ·è±æåç§°"]?.ToString() ; |
| | | _MnemonicCode = row["å©è®°ç "]?.ToString() ; |
| | | _CustType = row["ç±»å"]?.ToString() ; |
| | | _CustTypeName = row["ç±»ååç§°"]?.ToString() ; |
| | | _LinkMan = row["è系人"]?.ToString() ; |
| | | _Phone = row["çµè¯"]?.ToString() ; |
| | | _Email = row["çµåé®ä»¶"]?.ToString() ; |
| | | _ZipCode = row["é®ç¼"]?.ToString() ; |
| | | _Province = row["ç份"]?.ToString() ; |
| | | _City = row["åå¸"]?.ToString() ; |
| | | _Address = row["å°å"]?.ToString() ; |
| | | _IsDisabled = row["æ¯å¦ç¦ç¨"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_CustCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[客æ·ç¼å·]{_CustCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_CustCode)) |
| | | { |
| | | addItem.CustCode = (string)_CustCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_CustChinaName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[客æ·ä¸æåç§°]{_CustChinaName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_CustChinaName)) |
| | | { |
| | | addItem.CustChinaName = (string)_CustChinaName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_CustEnglishName)) |
| | | { |
| | | addItem.CustEnglishName = (string)_CustEnglishName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_MnemonicCode)) |
| | | { |
| | | addItem.MnemonicCode = (string)_MnemonicCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_CustType)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»å]{_CustType}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_CustType)) |
| | | { |
| | | if (!int.TryParse(_CustType, out int outCustType)&&!string.IsNullOrEmpty(_CustType)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»å]{_CustType}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outCustType <= 0&&!string.IsNullOrEmpty(_CustType)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»å]{_CustType}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.CustType = outCustType; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_CustTypeName)) |
| | | { |
| | | addItem.CustTypeName = (string)_CustTypeName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_LinkMan)) |
| | | { |
| | | addItem.LinkMan = (string)_LinkMan; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Phone)) |
| | | { |
| | | addItem.Phone = (string)_Phone; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Email)) |
| | | { |
| | | addItem.Email = (string)_Email; |
| | | } |
| | | if(!string.IsNullOrEmpty(_ZipCode)) |
| | | { |
| | | addItem.ZipCode = (string)_ZipCode; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Province)) |
| | | { |
| | | addItem.Province = (string)_Province; |
| | | } |
| | | if(!string.IsNullOrEmpty(_City)) |
| | | { |
| | | addItem.City = (string)_City; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Address)) |
| | | { |
| | | addItem.Address = (string)_Address; |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("æ¯") && !_IsDisabled.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦ç¦ç¨]{_IsDisabled}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("æ¯") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | |
| | | 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("BaseCustomer/downloadExcelTemplate")] |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\BaseCustomer{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( BaseCustomer input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//æ°å¢ |
| | | { |
| | | //æ°æ®æ¯å¦åå¨éå¤ |
| | | isExist = await _baseCustomerRep.AnyAsync(u => |
| | | u.CustCode.Equals(input.CustCode) |
| | | ,false); |
| | | } |
| | | else//ç¼è¾ |
| | | { |
| | | |
| | | |
| | | |
| | | //å½åç¼è¾æ°æ®ä»¥å¤æ¯å¦åå¨éå¤ |
| | | isExist = await _baseCustomerRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.CustCode.Equals(input.CustCode) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<BaseCustomer> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导å
¥æ°æ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | //æ°æ®æ¯å¦éå¤ |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.CustCode |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.CustCode |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var baseCustomer = existExcelItem.Adapt<BaseCustomer>(); |
| | | var item= existExcelItem.Adapt<BaseCustomer>(); |
| | | throw Oops.Oh($"导å
¥çè¡¨æ ¼ä¸,客æ·ç¼å·[{item.CustCode}]å·²åå¨"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //æ ¹æ®èå主é®éªè¯æ°æ®åºä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | var existDBItem = await _baseCustomerRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.CustCode |
| | | ) |
| | | .Contains("" |
| | | +w.CustCode |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var baseCustomer = existExcelItem.Adapt<BaseCustomer>(); |
| | | var item= existExcelItem.Adapt<BaseCustomer>(); |
| | | throw Oops.Oh($"ç³»ç»ä¸,客æ·ç¼å·[{item.CustCode}]å·²åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// å®¢æ·æ¡£æ¡æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class BaseCustomerSearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å©è®°ç |
| | | /// </summary> |
| | | public virtual string MnemonicCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»å |
| | | /// </summary> |
| | | public virtual int? CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string CustTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è系人 |
| | | /// </summary> |
| | | public virtual string LinkMan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµè¯ |
| | | /// </summary> |
| | | public virtual string Phone { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµåé®ä»¶ |
| | | /// </summary> |
| | | public virtual string Email { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é®ç¼ |
| | | /// </summary> |
| | | public virtual string ZipCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç份 |
| | | /// </summary> |
| | | public virtual string Province { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå¸ |
| | | /// </summary> |
| | | public virtual string City { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public virtual string Address { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { 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 BaseCustomerSearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å©è®°ç |
| | | /// </summary> |
| | | public virtual string MnemonicCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»å |
| | | /// </summary> |
| | | public virtual int? CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string CustTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è系人 |
| | | /// </summary> |
| | | public virtual string LinkMan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµè¯ |
| | | /// </summary> |
| | | public virtual string Phone { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµåé®ä»¶ |
| | | /// </summary> |
| | | public virtual string Email { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é®ç¼ |
| | | /// </summary> |
| | | public virtual string ZipCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç份 |
| | | /// </summary> |
| | | public virtual string Province { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå¸ |
| | | /// </summary> |
| | | public virtual string City { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public virtual string Address { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { 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 BaseCustomerInput |
| | | { |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "客æ·ç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "客æ·ä¸æåç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string CustChinaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public virtual string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å©è®°ç |
| | | /// </summary> |
| | | public virtual string MnemonicCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»å |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç±»åä¸è½ä¸ºç©º")] |
| | | public virtual int CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string CustTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è系人 |
| | | /// </summary> |
| | | public virtual string LinkMan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµè¯ |
| | | /// </summary> |
| | | public virtual string Phone { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµåé®ä»¶ |
| | | /// </summary> |
| | | public virtual string Email { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é®ç¼ |
| | | /// </summary> |
| | | public virtual string ZipCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç份 |
| | | /// </summary> |
| | | public virtual string Province { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå¸ |
| | | /// </summary> |
| | | public virtual string City { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public virtual string Address { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å®¢æ·æ¡£æ¡æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddBaseCustomerInput : BaseCustomerInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å®¢æ·æ¡£æ¡å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteBaseCustomerInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å®¢æ·æ¡£æ¡æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateBaseCustomerInput : BaseCustomerInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å®¢æ·æ¡£æ¡è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeBaseCustomerInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// å®¢æ·æ¡£æ¡è¾åºåæ° |
| | | /// </summary> |
| | | public class BaseCustomerOutput |
| | | { |
| | | /// <summary> |
| | | /// 客æ·ç¼å· |
| | | /// </summary> |
| | | public string CustCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·ä¸æåç§° |
| | | /// </summary> |
| | | public string CustChinaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 客æ·è±æåç§° |
| | | /// </summary> |
| | | public string CustEnglishName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å©è®°ç |
| | | /// </summary> |
| | | public string MnemonicCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»å |
| | | /// </summary> |
| | | public int CustType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public string CustTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è系人 |
| | | /// </summary> |
| | | public string LinkMan { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµè¯ |
| | | /// </summary> |
| | | public string Phone { get; set; } |
| | | |
| | | /// <summary> |
| | | /// çµåé®ä»¶ |
| | | /// </summary> |
| | | public string Email { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é®ç¼ |
| | | /// </summary> |
| | | public string ZipCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç份 |
| | | /// </summary> |
| | | public string Province { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åå¸ |
| | | /// </summary> |
| | | public string City { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public string Address { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { 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 IBaseCustomerService |
| | | { |
| | | Task<BaseCustomerOutput> Get([FromQuery] QueryeBaseCustomerInput input); |
| | | Task<List<BaseCustomerOutput>> List([FromQuery] BaseCustomerInput input); |
| | | Task<PageResult<BaseCustomerOutput>> Page([FromQuery] BaseCustomerSearch input); |
| | | Task<List<BaseCustomerOutput>> ListNonPageAsync([FromQuery] BaseCustomerSearchNonPage input); |
| | | |
| | | Task Add(AddBaseCustomerInput input); |
| | | Task Update(UpdateBaseCustomerInput input); |
| | | Task Delete(DeleteBaseCustomerInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public class BaseCustomerMapper : IRegister |
| | | { |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddBaseCustomerInput, BaseCustomer>() |
| | | ; |
| | | config.ForType<UpdateBaseCustomerInput, BaseCustomer>() |
| | | ; |
| | | config.ForType<BaseCustomer, BaseCustomerOutput>() |
| | | ; |
| | | } |
| | | } |
| | | } |