Compare commits

...

1 Commits

Author SHA1 Message Date
luwenlong 6360dd45e3 midea首次提交 2 days ago
  1. 6
      .env.development
  2. 1
      .env.prod
  3. 3
      .env.production
  4. 1
      .env.sit
  5. 1
      .env.uat
  6. 1
      .env.ver
  7. 140
      .eslintrc.js
  8. 2
      .prettierrc
  9. 14
      src/views/excel/ExcelExportTaskList.vue
  10. 13
      src/views/excel/ExcelImportTaskList.vue
  11. 10
      src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue
  12. 84
      src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue
  13. 42
      src/views/merger/mergeredConfig/productClassify/modules/additionCode.js
  14. 158
      src/views/merger/mergeredConfig/productClassify/modules/additionCodeDialog.vue
  15. 6
      test.log
  16. 11
      vue.config.js

6
.env.development

@ -1,7 +1,7 @@
NODE_ENV=development NODE_ENV=development
VUE_APP_API_BASE_URL=https://midea-test.egyun.com.cn/gcs VUE_APP_API_BASE_URL=https://localhost.midea.com/gcs
VUE_APP_API_BASE_SITE=http://localhost:9000 VUE_APP_API_BASE_SITE=http://localhost:9000
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
VUE_APP_LOGOUT_URL=https://lsitapi.midea.com/api-auth/ssoLogout VUE_APP_LOGOUT_BASE_URL=https://lsitapi.midea.com
VUE_APP_API_AUTH=https://lsitapi.midea.com/api-auth VUE_APP_MIP_URL=https://muisit.midea.com/midea-selector-v2.0/mipPersonSelector.umd.js

1
.env.prod

@ -1,5 +1,6 @@
NODE_ENV=prod NODE_ENV=prod
VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs
VUE_APP_API_BASE_DOMAIN=https://lcapi.midea.com
VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs
VUE_APP_CAS_BASE_URL=https://signin.midea.com/login VUE_APP_CAS_BASE_URL=https://signin.midea.com/login
VUE_APP_ONLINE_BASE_URL= VUE_APP_ONLINE_BASE_URL=

3
.env.production

@ -1,8 +1,9 @@
NODE_ENV=production NODE_ENV=production
VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs
VUE_APP_API_BASE_DOMAIN=https://lcapi.midea.com
VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs
VUE_APP_CAS_BASE_URL=https://signin.midea.com/login VUE_APP_CAS_BASE_URL=https://signin.midea.com/login
VUE_APP_ONLINE_BASE_URL= VUE_APP_ONLINE_BASE_URL=
VUE_APP_LOGOUT_URL=https://lcapi.midea.com/api-auth/ssoLogout VUE_APP_LOGOUT_URL=https://lcapi.midea.com/api-auth/ssoLogout
VUE_APP_SSO=true VUE_APP_SSO=true
VUE_APP_API_AUTH=https://lcapi.midea.com/api-auth VUE_APP_MIP_URL=https://mui.midea.com/midea-selector-v2.0/mipPersonSelector.umd.js

1
.env.sit

@ -1,5 +1,6 @@
NODE_ENV=sit NODE_ENV=sit
VUE_APP_API_BASE_URL=https://lsitapi.midea.com/api-iems-cn/gcs VUE_APP_API_BASE_URL=https://lsitapi.midea.com/api-iems-cn/gcs
VUE_APP_API_BASE_DOMAIN=https://lsitapi.midea.com
VUE_APP_API_BASE_SITE=http://localhost:9000 VUE_APP_API_BASE_SITE=http://localhost:9000
VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login
VUE_APP_ONLINE_BASE_URL= VUE_APP_ONLINE_BASE_URL=

1
.env.uat

@ -1,5 +1,6 @@
NODE_ENV=uat NODE_ENV=uat
VUE_APP_API_BASE_URL=https://luatapi.midea.com/api-iems-cn/gcs VUE_APP_API_BASE_URL=https://luatapi.midea.com/api-iems-cn/gcs
VUE_APP_API_BASE_DOMAIN=https://luatapi.midea.com
VUE_APP_API_BASE_SITE=http://localhost:9000 VUE_APP_API_BASE_SITE=http://localhost:9000
VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login
VUE_APP_ONLINE_BASE_URL= VUE_APP_ONLINE_BASE_URL=

1
.env.ver

@ -1,5 +1,6 @@
NODE_ENV=ver NODE_ENV=ver
VUE_APP_API_BASE_URL=https://lverapi.midea.com/api-iems-cn/gcs VUE_APP_API_BASE_URL=https://lverapi.midea.com/api-iems-cn/gcs
VUE_APP_API_BASE_DOMAIN=https://lverapi.midea.com
VUE_APP_API_BASE_SITE=http://localhost:9000 VUE_APP_API_BASE_SITE=http://localhost:9000
VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview

140
.eslintrc.js

@ -9,143 +9,7 @@ module.exports = {
"ecmaVersion": 2020, "ecmaVersion": 2020,
"sourceType": "module" "sourceType": "module"
}, },
extends: [ "extends": ["eslint-config-md-js", "eslint-config-md-vue2"],
// "eslint-config-md-js", "rules": {
// "eslint-config-md-vue2",
// 加入 Vue 推荐的规则配置
'plugin:vue/recommended',
],
rules: {
// 关闭多行属性间必须换行的规则
'vue/new-line-between-multi-line-attributes': 'off',
// 关闭Vue模板缩进检查(关键:解决模板中的缩进提示)
'vue/html-indent': 'off',
// 强制使用分号(默认)
'semi': ['warn', 'always'],
// 警告但不报错(提醒清理)
'no-console': 'warn',
// 单行标签属性个数
'vue/max-attributes-per-line': ['warn', {
'singleline': 10,
'multiline': {
'max': 10,
'allowFirstLine': false
} }
}],
// 关闭v-html的XSS风险提示
'vue/no-v-html': 'off',
// 关闭属性必须使用连字符命名的规则
'vue/attribute-hyphenation': 'off',
// 关闭组件选项顺序校验规则
'vue/order-in-components': 'off',
// 关闭 Vue 属性顺序强制校验规则
'vue/attributes-order': 'off',
// 允许单行里展示标签和文本
'vue/singleline-html-element-content-newline': 'off',
// 要求使用严格相等(!==/===)
eqeqeq: ['error', 'always'],
// 允许在 <template v-for> 的子元素上使用 key(而非 template 标签本身)
'vue/no-v-for-template-key-on-child': 'off',
// 关闭 "$slots" 属性应作为函数使用的提示 好像没效果
'vue/no-deprecated-slot-attribute': 'off',
'vue/html-self-closing': [
'error',
{
html: {
void: 'always', // HTML 空标签始终自闭合
normal: 'never', // 普通标签不自闭合
component: 'always', // 组件始终自闭合
},
},
],
'vue/html-closing-bracket-spacing': [
'error',
{
selfClosingTag: 'always', // 自闭合标签斜杠前必须有空格
},
],
// 插值语法内必须要有空格 {{ 1 }} 这种
'vue/mustache-interpolation-spacing': ['error', 'always'],
// 禁止使用var,要求用let/const
'no-var': 'error',
// 新增:未修改的变量必须用const,修改的用let
'prefer-const': [
'error',
{
// 允许对解构赋值中的变量使用let(可选配置)
destructuring: 'any',
// 忽略for循环中的初始化变量(如for(let i=0;...))
ignoreReadBeforeAssign: false
}
],
// if条件后必须有大括号
curly: ['error', 'all'],
// Props必须设置默认值
'vue/require-default-prop': 'error',
// Props必须定义类型
'vue/require-prop-types': 'error',
// 关闭 $listeners 弃用警告(适用于 Vue 2 项目)
'vue/no-deprecated-dollar-listeners-api': 'off',
// 禁止访问Object原型方法(如hasOwnProperty)------------- 没效果
'no-prototype-builtins': 'error',
// 禁止定义但未使用的变量
'no-unused-vars': 'error',
// 关闭 slot-scope 弃用警告
'vue/no-deprecated-slot-scope-attribute': 'off',
// 关闭 .native 修饰符弃用警告
'vue/no-deprecated-v-on-native-modifier': 'off',
// 关闭组件名必须多单词的规则
'vue/multi-word-component-names': 'off',
// 关闭计算属性中意外副作用的提示
'vue/no-side-effects-in-computed-properties': 'off',
// 关闭组件已注册但未使用的提示
'vue/no-unused-components': 'off',
// 关闭属性应至少定义其类型的提示(针对 Vue 组件 props 类型检查)
'vue/require-prop-type-constructor': 'off',
// 禁止不必要的转义字符
'no-useless-escape': 'error',
// 限制函数复杂度(默认最大10)
complexity: ['error', 10],
// 允许使用 $on, $off, $once(Vue 3 中已废弃的事件 API)
'vue/no-deprecated-events-api': 'off',
// 允许使用过滤器(Vue 3 中已废弃)
'vue/no-deprecated-filter': 'off',
// 允许以属性形式使用 $slots(Vue 3 中建议作为函数使用)
'vue/no-deprecated-slot-scope-attribute': 'off',
'vue/no-deprecated-dollar-scopedslots-api': 'off',
'vue/require-slots-as-functions': 'off',
},
} }

2
.prettierrc

@ -1,5 +1,5 @@
{ {
"printWidth": 120, "printWidth": 120,
"semi": true, "semi": false,
"singleQuote": true "singleQuote": true
} }

14
src/views/excel/ExcelExportTaskList.vue

@ -60,8 +60,6 @@
</a-menu> </a-menu>
<w-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></w-button> <w-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></w-button>
</a-dropdown> --> </a-dropdown> -->
<w-button @click="execute()" v-has="'excel:export:execute'" type="primary"> 导出执行 </w-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@ -106,7 +104,6 @@
import { JeecgListMixin, WGridResizeByCssMixin } from '@/mixins/JeecgListMixin' import { JeecgListMixin, WGridResizeByCssMixin } from '@/mixins/JeecgListMixin'
import { mixinDevice } from '@/utils/mixin' import { mixinDevice } from '@/utils/mixin'
import { getAction } from '@/api/manage'
import ExcelExportModel from './modules/ExcelExportModel.vue' import ExcelExportModel from './modules/ExcelExportModel.vue'
export default { export default {
name: 'ExcelExportTaskList', name: 'ExcelExportTaskList',
@ -257,7 +254,6 @@ export default {
delete: '/sys/excel/export/task/delete', delete: '/sys/excel/export/task/delete',
deleteBatch: '/sys/excel/export/task/deleteBatch', deleteBatch: '/sys/excel/export/task/deleteBatch',
downloadUrl: '/sys/excel/download', downloadUrl: '/sys/excel/download',
executeExportTask: '/sys/excel/export/task/executeExportTask',
}, },
dictOptions: {}, dictOptions: {},
superFieldList: [], superFieldList: [],
@ -290,16 +286,6 @@ export default {
this.createTime = [] this.createTime = []
this.searchReset() this.searchReset()
}, },
execute() {
getAction(this.url.executeExportTask).then((res) => {
if (res.success) {
this.$message.success('导出执行成功')
this.loadData(1)
} else {
this.$message.warning(res.message)
}
})
},
}, },
} }
</script> </script>

13
src/views/excel/ExcelImportTaskList.vue

@ -43,7 +43,6 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<w-button @click="execute()" v-has="'excel:import:execute'" type="primary"> 导入执行 </w-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@ -94,7 +93,6 @@
import { JeecgListMixin, WGridResizeByCssMixin } from '@/mixins/JeecgListMixin' import { JeecgListMixin, WGridResizeByCssMixin } from '@/mixins/JeecgListMixin'
import { mixinDevice } from '@/utils/mixin' import { mixinDevice } from '@/utils/mixin'
import ExcelImportTaskModal from './modules/ExcelImportTaskModal' import ExcelImportTaskModal from './modules/ExcelImportTaskModal'
import { getAction } from '@/api/manage'
export default { export default {
name: 'ExcelImportTaskList', name: 'ExcelImportTaskList',
@ -255,7 +253,6 @@ export default {
exportXlsUrl: '/sys/excel/import/task/exportXls', exportXlsUrl: '/sys/excel/import/task/exportXls',
importExcelUrl: '/sys/excel/import/task/importExcel', importExcelUrl: '/sys/excel/import/task/importExcel',
downloadUrl: '/sys/excel/download', downloadUrl: '/sys/excel/download',
executeImportTask: '/sys/excel/import/task/executeImportTask',
}, },
dictOptions: {}, dictOptions: {},
superFieldList: [], superFieldList: [],
@ -288,16 +285,6 @@ export default {
this.createTime = [] this.createTime = []
this.searchReset() this.searchReset()
}, },
execute() {
getAction(this.url.executeImportTask).then((res) => {
if (res.success) {
this.$message.success('导入执行成功')
this.loadData(1)
} else {
this.$message.warning(res.message)
}
})
},
}, },
} }
</script> </script>

10
src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue

@ -13,11 +13,19 @@
<w-input v-model="cultureCode" placeholder="请输入语言类别" /> <w-input v-model="cultureCode" placeholder="请输入语言类别" />
</w-col> </w-col>
<w-col :span="12"> <w-col :span="12">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submit-buttons">
<w-button @click="searchQuery" type="primary" icon="search">查询</w-button> <w-button @click="searchQuery" type="primary" icon="search">查询</w-button>
<w-button @click="searchReset" type="primary" style="margin-left: 8px">重置</w-button> <w-button @click="searchReset" type="primary" style="margin-left: 8px">重置</w-button>
</span> </span>
</w-col> </w-col>
<w-col :span="2">
<a-tooltip>
<template slot="title">
监管条件内容为所选附加编码匹配监管条件说明内容前3位数值一致的结果
</template>
<a-icon class="iconfont" width="2em" height="2em" type="question-circle" />
</a-tooltip>
</w-col>
</w-row> </w-row>
</w-form> </w-form>
</div> </div>

84
src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue

@ -161,7 +161,7 @@
<div>{{ model.country + '-' + model.countryName }}</div> <div>{{ model.country + '-' + model.countryName }}</div>
</div> </div>
</div> </div>
<j-form-container> <j-form-container class="merger-good-form-box">
<w-form ref="form" slot="detail" :model="model" :rules="validatorRules" v-next> <w-form ref="form" slot="detail" :model="model" :rules="validatorRules" v-next>
<!-- start 中国 --> <!-- start 中国 -->
<w-row v-if="model.country === 'CN'"> <w-row v-if="model.country === 'CN'">
@ -396,6 +396,7 @@
> >
<w-input <w-input
v-model="model.limitConditions" v-model="model.limitConditions"
readonly
placeholder="请输入海外监管条件" placeholder="请输入海外监管条件"
:maxLength="500" :maxLength="500"
:disabled="formDisabled" :disabled="formDisabled"
@ -407,6 +408,20 @@
<w-input v-model="model.remarks" :maxLength="250" placeholder="请输入备注" :disabled="formDisabled" /> <w-input v-model="model.remarks" :maxLength="250" placeholder="请输入备注" :disabled="formDisabled" />
</w-form-item> </w-form-item>
</w-col> </w-col>
<w-col :span="12" v-if="showAdditionCode">
<w-form-item :label-col="labelCol" :wrapper-col="wrapperCol" label="附加编码" prop="additionalCode">
<div style="display: flex; align-items: center; width: 100%">
<w-input v-model="model.additionalCode" readonly placeholder="请选择附加编码" />
<div
@click="showAdditionCodeHandle"
class="plus-box"
>
<a-icon type="plus" style="color: #ffffff" />
</div>
</div>
</w-form-item>
</w-col>
</w-row> </w-row>
<!-- end --> <!-- end -->
</w-form> </w-form>
@ -559,6 +574,7 @@
</w-form> </w-form>
</j-modal> </j-modal>
<ApprovalProgressTemplate ref="ApprovalProgressTemplate" @ok="$emit('close')" /> <ApprovalProgressTemplate ref="ApprovalProgressTemplate" @ok="$emit('close')" />
<addition-code-dialog ref="additionCodeDialogRef" @confirm="confirmAdditionCode"></addition-code-dialog>
</a-spin> </a-spin>
</template> </template>
@ -576,10 +592,12 @@ import CNattachmentCode from './CNattachmentCode';
import CNregulatoryConditions from './CNregulatoryConditions'; import CNregulatoryConditions from './CNregulatoryConditions';
import CNtaxrateDesc from './CNtaxrateDesc'; import CNtaxrateDesc from './CNtaxrateDesc';
import ApprovalProgressTemplate from '@/components/ApprovalProgressTemplate/index'; import ApprovalProgressTemplate from '@/components/ApprovalProgressTemplate/index';
import additionCodeDialog from './additionCodeDialog';
export default { export default {
name: 'MideaMergerGoodsForm', name: 'MideaMergerGoodsForm',
components: { components: {
additionCodeDialog,
WorkflowList, WorkflowList,
ModifyRecord, ModifyRecord,
devClassify, devClassify,
@ -624,6 +642,7 @@ export default {
}, },
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
additionalCode: [{ required: true, message: '请选择附加编码!', trigger: 'blur' }],
hsCode: [{ required: true, message: '请输入HSCode!', trigger: 'blur' }], hsCode: [{ required: true, message: '请输入HSCode!', trigger: 'blur' }],
gname: [{ required: true, message: '请输入商品名称!', trigger: 'blur' }], gname: [{ required: true, message: '请输入商品名称!', trigger: 'blur' }],
}, },
@ -694,6 +713,10 @@ export default {
formDisabled() { formDisabled() {
return this.disabled; return this.disabled;
}, },
showAdditionCode() {
//
return this.model.country && this.model.country === 'TH';
},
controlMaQuanType() { controlMaQuanType() {
if (this.model.controlMa && this.model.quanType) { if (this.model.controlMa && this.model.quanType) {
return this.model.controlMa + ',' + this.model.quanType; return this.model.controlMa + ',' + this.model.quanType;
@ -711,6 +734,13 @@ export default {
this.modelDefault = JSON.parse(JSON.stringify(this.model)); this.modelDefault = JSON.parse(JSON.stringify(this.model));
}, },
methods: { methods: {
showAdditionCodeHandle() {
this.$refs.additionCodeDialogRef.show({ data: this.model });
},
confirmAdditionCode(data) {
this.model.additionalCode = data.additionalCode;
this.getOtherCountry();
},
timestampToDate(timestamp) { timestampToDate(timestamp) {
if (!timestamp) { if (!timestamp) {
return ''; return '';
@ -733,7 +763,7 @@ export default {
return; // return return; // return
} }
} else if (!['GC', 'CN'].includes(this.model.country)) { } else if (!['GC', 'CN'].includes(this.model.country)) {
if (this.model.hsCode.length < 6) { if (this.model.hsCode && this.model.hsCode.length < 6) {
this.$message.error('国家为海外时,HSCode必须大于等于6位'); this.$message.error('国家为海外时,HSCode必须大于等于6位');
return; // return return; // return
} }
@ -783,7 +813,7 @@ export default {
id: this.model.id, id: this.model.id,
}); });
if (resp.success) { if (resp.success) {
if (this.model.country === 'ID') { if (this.model.country === 'ID' || this.model.country === 'TH') {
this.SubmitValid(); this.SubmitValid();
} else { } else {
this.$refs.ApprovalProgressTemplate.show({ this.$refs.ApprovalProgressTemplate.show({
@ -820,11 +850,15 @@ export default {
} }
}, },
async auditFlow() { async auditFlow() {
if (this.model.country === 'ID') { if (this.model.country === 'ID' || this.model.country === 'TH') {
const valid = await getAction(this.url.regulationValid, { const data = {
countryCode: this.model.country, countryCode: this.model.country,
hscode: this.model.hsCode, hscode: this.model.hsCode
}); };
if ( this.model.country === 'TH' ) {
data.additionalCode = this.model.additionalCode;
}
const valid = await getAction(this.url.regulationValid, data);
if (valid.success) { if (valid.success) {
this.$refs.ApprovalProgressTemplate.show({ this.$refs.ApprovalProgressTemplate.show({
id: this.model.id, id: this.model.id,
@ -888,6 +922,9 @@ export default {
flag: this.flag, flag: this.flag,
}); });
} }
if (this.model.country === 'TH' && value) {
this.initAdditionalCode();
}
}, },
filterOption(input, option) { filterOption(input, option) {
return option.componentOptions.children[0].text.indexOf(input) !== -1; return option.componentOptions.children[0].text.indexOf(input) !== -1;
@ -895,10 +932,20 @@ export default {
closeModal(record) { closeModal(record) {
if (record) { if (record) {
this.model.hsCode = record.codeTS || record.hscode; this.model.hsCode = record.codeTS || record.hscode;
if (this.model.country === 'TH') {
this.initAdditionalCode();
}
this.queryByIdHscode('enter'); this.queryByIdHscode('enter');
} }
this.CNhSCodeModalShow = false; this.CNhSCodeModalShow = false;
}, },
initAdditionalCode(){
this.model.additionalCode = '';
this.regulatoryConditionsDataSource = [];
if (this.activeKeyBottom === 'regulatoryConditions') {
this.$refs.CNregulatoryConditions.show(this.regulatoryConditionsDataSource);
}
},
// HSCode // HSCode
showHsCode() { showHsCode() {
if (this.formDisabled) { if (this.formDisabled) {
@ -1087,6 +1134,7 @@ export default {
const resp = await getAction(this.url.hscodDetail, { const resp = await getAction(this.url.hscodDetail, {
hscode: this.model.hsCode, hscode: this.model.hsCode,
countryCode: this.model.country, countryCode: this.model.country,
additionalCode: this.model.country === 'TH' ? this.model.additionalCode : undefined
}); });
if (resp.success) { if (resp.success) {
const result = JSON.parse(resp.result); const result = JSON.parse(resp.result);
@ -1251,6 +1299,8 @@ export default {
} }
} }
}); });
} else {
that.$message.warning('请检查必填项');
} }
}); });
}, },
@ -1358,10 +1408,14 @@ export default {
}); });
}, },
async SubmitValid() { async SubmitValid() {
const valid = await getAction(this.url.regulationValid, { const data = {
countryCode: this.model.country, countryCode: this.model.country,
hscode: this.model.hsCode, hscode: this.model.hsCode
}); };
if ( this.model.country === 'TH' ) {
data.additionalCode = this.model.additionalCode;
}
const valid = await getAction(this.url.regulationValid, data);
if (valid.success) { if (valid.success) {
this.$refs.ApprovalProgressTemplate.show({ this.$refs.ApprovalProgressTemplate.show({
id: this.model.id, id: this.model.id,
@ -1435,7 +1489,15 @@ export default {
} }
} }
} }
.merger-good-form-box {
.plus-box {
width: 26px;
height: 26px;
background-color: #0f69ff;
line-height: 26px;
text-align: center;
}
}
/deep/ .md-form-item__label { /deep/ .md-form-item__label {
width: 120px; width: 120px;
} }

42
src/views/merger/mergeredConfig/productClassify/modules/additionCode.js

@ -0,0 +1,42 @@
export default {
searchFields: [
{
name: '附加编码',
value: 'additionalCode',
type: 'input',
isFixed: true,
span: 3
},
{
name: '语言类别',
value: 'cultureCode',
type: 'select',
optionsKey: 'GLOBAL_TARIFF_LANGUAGE_TYPE',
isFixed: true,
span: 3
}
],
columns:[
{
label: '附加编码',
prop: 'additionalCode',
'width': 130,
},
{
label: '附加编码类型',
prop: 'additionalCodeType',
'width': 130,
},
{
label: '附加编码说明',
prop: 'codeDescription',
'min-width': 160,
},
{
label: '语言类别',
prop: 'cultureCode',
'width': 130,
},
]
}

158
src/views/merger/mergeredConfig/productClassify/modules/additionCodeDialog.vue

@ -0,0 +1,158 @@
<template>
<md-dialog
:close-on-click-modal="false"
:title="title"
:fullscreen="false"
:visible.sync="dialogVisible"
append-to-body
width="800px"
> <div class="table-page-search-wrapper">
<w-form @keyup.enter.native="searchQueryHandle" layout="inline">
<w-row :gutter="10">
<w-col :span="5" v-for="i in config.searchFields" :key="i.value">
<w-input v-if="i.type === 'input'" v-model="queryParam[i.value]" :placeholder="i.placeholder || i.name" />
<md-select v-if="i.type === 'select'" v-model="queryParam[i.value]" :placeholder="i.placeholder || i.name" filterable clearable>
<md-option
v-for="item in optionsData[i.optionsKey] || {}"
:key="item.value"
:label="item.label"
:value="item.value">
</md-option>
</md-select>
</w-col>
<w-col :span="8" style="justify-content:flex-end">
<span style="float: right; overflow: hidden" class="table-page-search-submitButtons">
<w-button @click="searchQueryHandle" type="primary" icon="search">查询</w-button>
<w-button @click="searchResetHandle" type="primary" style="margin-left: 8px">重置</w-button>
</span>
</w-col>
</w-row>
</w-form>
</div>
<md-table :data="tableData" border size="mini" style="width: 100%" @row-dblclick="rowDblclick">
<md-table-column v-for="col in config.columns" :key="col.prop" :prop="col.prop" :label="col.label" v-bind="{ ...$attrs }"></md-table-column>
</md-table>
</md-dialog>
</template>
<script>
import { postAction, getAction } from '@/api/manage';
import config from './additionCode';
import lodash from 'lodash';
export default {
data() {
return {
config,
queryParam:{},
modelData:{},
tableData:[],
tableDataBackup:[],
dialogVisible: false,
optionsData:{},
title: ''
};
},
methods: {
searchQueryHandle(){
const { additionalCode, cultureCode } = this.queryParam;
if (additionalCode && isNaN(additionalCode)) {
this.$MdMessage({
message: '附加编码只能输入数字',
type: 'warning'
});
return;
}
if (additionalCode && String(additionalCode).length > 6) {
this.$MdMessage({
message: '附加编码不能超过6位',
type: 'warning'
});
return;
}
if( additionalCode || cultureCode) {
const filterData = this.tableDataBackup.filter(item => {
// additionalCode
let additionalCodeMatch = true;
if (!lodash.isEmpty(additionalCode)) {
//
additionalCodeMatch = item.additionalCode === additionalCode;
}
// cultureCode
let cultureCodeMatch = true;
if (!lodash.isEmpty(cultureCode)) {
//
cultureCodeMatch = item.cultureCode === cultureCode;
}
return additionalCodeMatch && cultureCodeMatch;
});
this.tableData = filterData;
} else {
this.tableData = this.tableDataBackup;
}
},
searchResetHandle(){
this.queryParam = {};
this.tableData = this.tableDataBackup;
},
show({data}){
if(!data.hsCode){
this.$message.warning('商品编码不能为空,请维护后重试');
return;
}
this.queryParam = {
additionalCode: data.additionalCode || '',
cultureCode: 'eng'
}
this.dialogVisible = true;
this.title = data.hsCode + '-附加编码';
this.modelData = data;
this.$nextTick(()=>{
this.getDate();
})
},
close(){
this.dialogVisible = false;
this.tableData = [];
},
rowDblclick(row){
this.$emit('confirm', row)
this.close();
},
getDate() {
postAction(process.env.VUE_APP_API_BASE_DOMAIN + '/api-iems-cn/base/tariff/additional/code/v1/get-by-page', {
hscode: this.modelData.hsCode || '',
countryCode: this.modelData.country || '',
pageSize: 999
}).then(res => {
if (res && +res.code === 0) {
this.tableDataBackup = lodash.cloneDeep(res.data.list);
this.searchQueryHandle();
}
});
},
initDict() {
const keyList = ['GLOBAL_TARIFF_LANGUAGE_TYPE'];
getAction(process.env.VUE_APP_API_BASE_DOMAIN + '/api-it-dc/dictionaryDetail/translateWithTenant',
{ dictCodes: keyList.join(',') }
).then(res => {
if (res && +res.code === 0 && res.data && res.data.GLOBAL_TARIFF_LANGUAGE_TYPE) {
const data = res.data.GLOBAL_TARIFF_LANGUAGE_TYPE;
const list = [];
Object.keys(data).forEach(key => {
list.push({
label: data[key],
value: key
})
});
this.optionsData.GLOBAL_TARIFF_LANGUAGE_TYPE = list;
}
});
}
},
mounted() {
this.initDict()
},
};
</script>

6
test.log

@ -1,6 +0,0 @@
1dddssssdf
sa
df
asg
asggs

11
vue.config.js

@ -23,10 +23,10 @@ module.exports = {
// } // }
// }, // },
//打包app时放开该配置 //打包app时放开该配置
// publicPath:'/iems-winlink/', publicPath:'/iems-winlink/',
configureWebpack: (config) => { configureWebpack: (config) => {
//生产环境取消 console.log //生产环境取消 console.log
if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'sit' || process.env.NODE_ENV === 'prod' || process.env.NODE_ENV === 'uat') { if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'sit' || process.env.NODE_ENV === 'uat') {
config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
config.plugins.push(new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 20 })) config.plugins.push(new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 20 }))
} }
@ -101,7 +101,7 @@ module.exports = {
pathRewrite: { pathRewrite: {
'^/gcs': '', '^/gcs': '',
}, },
cookieDomainRewrite: 'localhost', // cookieDomainRewrite: 'localhost',
}, },
'/sitMuiProxy': { '/sitMuiProxy': {
target: 'https://imipsit.midea.com', target: 'https://imipsit.midea.com',
@ -118,6 +118,11 @@ module.exports = {
changeOrigin: true, changeOrigin: true,
pathRewrite: { '^/muiProxy': '' }, pathRewrite: { '^/muiProxy': '' },
}, },
'/lsitProxy': {
target: process.env.VUE_APP_LOGOUT_BASE_URL,
changeOrigin: true,
pathRewrite: { '^/lsitProxy': '' },
},
}, },
}, },
// 将 lintOnSave 设置为 false 以关闭 ESLint 检查 // 将 lintOnSave 设置为 false 以关闭 ESLint 检查

Loading…
Cancel
Save