中英文翻译
This commit is contained in:
parent
2ab2d3df93
commit
dcfd44da94
@ -2,4 +2,4 @@
|
|||||||
ENV = development
|
ENV = development
|
||||||
|
|
||||||
# 本地环境接口地址
|
# 本地环境接口地址
|
||||||
VITE_API_URL = http://8.134.66.212:90
|
VITE_API_URL = http://58.252.252.77:90
|
@ -2,4 +2,4 @@
|
|||||||
ENV = production
|
ENV = production
|
||||||
|
|
||||||
# 线上环境接口地址
|
# 线上环境接口地址
|
||||||
VITE_API_URL = http://8.134.66.212:90
|
VITE_API_URL = http://58.252.252.77:90
|
11
package-lock.json
generated
11
package-lock.json
generated
@ -14,6 +14,7 @@
|
|||||||
"@wangeditor/editor": "^5.1.23",
|
"@wangeditor/editor": "^5.1.23",
|
||||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||||
"axios": "^1.6.8",
|
"axios": "^1.6.8",
|
||||||
|
"clipboard": "^2.0.11",
|
||||||
"countup.js": "^2.8.0",
|
"countup.js": "^2.8.0",
|
||||||
"cropperjs": "^1.6.1",
|
"cropperjs": "^1.6.1",
|
||||||
"echarts": "^5.5.0",
|
"echarts": "^5.5.0",
|
||||||
@ -2010,8 +2011,9 @@
|
|||||||
},
|
},
|
||||||
"node_modules/clipboard": {
|
"node_modules/clipboard": {
|
||||||
"version": "2.0.11",
|
"version": "2.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
|
"resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
|
||||||
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"good-listener": "^1.2.2",
|
"good-listener": "^1.2.2",
|
||||||
"select": "^1.1.2",
|
"select": "^1.1.2",
|
||||||
@ -4495,8 +4497,9 @@
|
|||||||
},
|
},
|
||||||
"node_modules/vue-clipboard3": {
|
"node_modules/vue-clipboard3": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz",
|
||||||
"integrity": "sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==",
|
"integrity": "sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"clipboard": "^2.0.6"
|
"clipboard": "^2.0.6"
|
||||||
}
|
}
|
||||||
@ -5984,7 +5987,7 @@
|
|||||||
},
|
},
|
||||||
"clipboard": {
|
"clipboard": {
|
||||||
"version": "2.0.11",
|
"version": "2.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
|
"resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
|
||||||
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"good-listener": "^1.2.2",
|
"good-listener": "^1.2.2",
|
||||||
@ -7769,7 +7772,7 @@
|
|||||||
},
|
},
|
||||||
"vue-clipboard3": {
|
"vue-clipboard3": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz",
|
||||||
"integrity": "sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==",
|
"integrity": "sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"clipboard": "^2.0.6"
|
"clipboard": "^2.0.6"
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
"@wangeditor/editor": "^5.1.23",
|
"@wangeditor/editor": "^5.1.23",
|
||||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||||
"axios": "^1.6.8",
|
"axios": "^1.6.8",
|
||||||
|
"clipboard": "^2.0.11",
|
||||||
"countup.js": "^2.8.0",
|
"countup.js": "^2.8.0",
|
||||||
"cropperjs": "^1.6.1",
|
"cropperjs": "^1.6.1",
|
||||||
"echarts": "^5.5.0",
|
"echarts": "^5.5.0",
|
||||||
|
@ -95,5 +95,13 @@ export function listApi() {
|
|||||||
params:data,
|
params:data,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
//删除某个发货订单
|
||||||
|
invoiceOrderDeleteOrder: (data: object) => {
|
||||||
|
return request({
|
||||||
|
url: '/api/Admin/InvoiceOrder/DeleteOrder',
|
||||||
|
method: 'post',
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,12 @@ export default {
|
|||||||
month:'Mnth',
|
month:'Mnth',
|
||||||
day:'Day',
|
day:'Day',
|
||||||
changedSuccessfully:'changed successfully',
|
changedSuccessfully:'changed successfully',
|
||||||
PleaseSelectItemsFirstly:'Please select items firstlys'
|
PleaseSelectItemsFirstly:'Please select items firstlys',
|
||||||
|
language:'Language',
|
||||||
|
noData:'No Data',
|
||||||
|
success:'Success',
|
||||||
|
copy:'Copy',
|
||||||
|
deleteText:'Delete',
|
||||||
|
scqd:'Please confirm the deletion of the delivery note?'
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -15,7 +15,7 @@ export default {
|
|||||||
selected: '已选中',
|
selected: '已选中',
|
||||||
items: '条数据',
|
items: '条数据',
|
||||||
proceed: '去查看',
|
proceed: '去查看',
|
||||||
date: '采购日期',
|
date: '日期',
|
||||||
status: '关闭状态',
|
status: '关闭状态',
|
||||||
unclosed: '未关闭',
|
unclosed: '未关闭',
|
||||||
partNumber: '物料编码',
|
partNumber: '物料编码',
|
||||||
@ -64,6 +64,12 @@ export default {
|
|||||||
month:'月',
|
month:'月',
|
||||||
day:'日',
|
day:'日',
|
||||||
changedSuccessfully:'修改成功',
|
changedSuccessfully:'修改成功',
|
||||||
PleaseSelectItemsFirstly:'请先选中数据'
|
PleaseSelectItemsFirstly:'请先选中数据',
|
||||||
|
language:'语言',
|
||||||
|
noData:'没有数据',
|
||||||
|
success:'成功',
|
||||||
|
copy:'复制',
|
||||||
|
deleteText:'删除',
|
||||||
|
scqd:'确定要删除该条送货单?'
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -1,13 +1,28 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-form size="large" class="login-content-form">
|
<el-form size="large" class="login-content-form">
|
||||||
<el-form-item class="login-animation1">
|
<el-form-item class="login-animation1">
|
||||||
|
<el-select v-model="state.language" class="m-2" :placeholder="t('message.index.language')" size="large" @change="onLanguageChange">
|
||||||
|
<template #prefix>
|
||||||
|
<el-icon class="el-input__icon"><ele-Position /></el-icon>
|
||||||
|
</template>
|
||||||
|
<el-option
|
||||||
|
label="中文"
|
||||||
|
value="zh-cn"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="EN"
|
||||||
|
value="en"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item class="login-animation2">
|
||||||
<el-input text :placeholder="$t('message.account.accountPlaceholder1')" v-model="state.ruleForm.userName" clearable autocomplete="off">
|
<el-input text :placeholder="$t('message.account.accountPlaceholder1')" v-model="state.ruleForm.userName" clearable autocomplete="off">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<el-icon class="el-input__icon"><ele-User /></el-icon>
|
<el-icon class="el-input__icon"><ele-User /></el-icon>
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item class="login-animation2">
|
<el-form-item class="login-animation3">
|
||||||
<el-input
|
<el-input
|
||||||
:type="state.isShowPassword ? 'text' : 'password'"
|
:type="state.isShowPassword ? 'text' : 'password'"
|
||||||
:placeholder="$t('message.account.accountPlaceholder2')"
|
:placeholder="$t('message.account.accountPlaceholder2')"
|
||||||
@ -45,19 +60,22 @@ import { storeToRefs } from 'pinia';
|
|||||||
import { useThemeConfig } from '/@/stores/themeConfig';
|
import { useThemeConfig } from '/@/stores/themeConfig';
|
||||||
import { initFrontEndControlRoutes } from '/@/router/frontEnd';
|
import { initFrontEndControlRoutes } from '/@/router/frontEnd';
|
||||||
import { initBackEndControlRoutes } from '/@/router/backEnd';
|
import { initBackEndControlRoutes } from '/@/router/backEnd';
|
||||||
import { Session } from '/@/utils/storage';
|
import {Local, Session} from '/@/utils/storage';
|
||||||
import { formatAxis } from '/@/utils/formatTime';
|
import { formatAxis } from '/@/utils/formatTime';
|
||||||
import { NextLoading } from '/@/utils/loading';
|
import { NextLoading } from '/@/utils/loading';
|
||||||
import { useLoginApi } from '../../../api/login/index'
|
import { useLoginApi } from '../../../api/login/index'
|
||||||
|
import other from "/@/utils/other";
|
||||||
// 定义变量内容
|
// 定义变量内容
|
||||||
const { t } = useI18n();
|
const { t,locale } = useI18n();
|
||||||
const storesThemeConfig = useThemeConfig();
|
const storesThemeConfig = useThemeConfig();
|
||||||
const { themeConfig } = storeToRefs(storesThemeConfig);
|
const { themeConfig } = storeToRefs(storesThemeConfig);
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
|
language:Local.get('langes'),
|
||||||
isShowPassword: false,
|
isShowPassword: false,
|
||||||
ruleForm: {
|
ruleForm: {
|
||||||
|
//kingdee123..
|
||||||
userName: '',
|
userName: '',
|
||||||
password: '',
|
password: '',
|
||||||
code: '',
|
code: '',
|
||||||
@ -66,7 +84,19 @@ const state = reactive({
|
|||||||
signIn: false,
|
signIn: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
const onLanguageChange = (lang: any) => {
|
||||||
|
Local.remove('themeConfig');
|
||||||
|
themeConfig.value.globalI18n = lang;
|
||||||
|
Local.set('themeConfig', themeConfig.value);
|
||||||
|
Local.set('langes', lang);
|
||||||
|
locale.value = lang;
|
||||||
|
other.useTitle();
|
||||||
|
initI18nOrSize('globalI18n', 'disabledI18n');
|
||||||
|
router.go(0);
|
||||||
|
};
|
||||||
|
const initI18nOrSize = (value: string, attr: string) => {
|
||||||
|
(<any>state)[attr] = Local.get('themeConfig')[value];
|
||||||
|
};
|
||||||
// 时间获取
|
// 时间获取
|
||||||
const currentTime = computed(() => {
|
const currentTime = computed(() => {
|
||||||
return formatAxis(new Date());
|
return formatAxis(new Date());
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="login-right flex">
|
<div class="login-right flex">
|
||||||
<div class="login-right-warp flex-margin">
|
<div class="login-right-warp flex-margin">
|
||||||
|
|
||||||
<span class="login-right-warp-one"></span>
|
<span class="login-right-warp-one"></span>
|
||||||
<span class="login-right-warp-two"></span>
|
<span class="login-right-warp-two"></span>
|
||||||
<div class="login-right-warp-mian">
|
<div class="login-right-warp-mian">
|
||||||
@ -18,9 +19,6 @@
|
|||||||
<el-tab-pane :label="$t('message.label.one1')" name="account">
|
<el-tab-pane :label="$t('message.label.one1')" name="account">
|
||||||
<Account />
|
<Account />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- <el-tab-pane :label="$t('message.label.two2')" name="mobile">-->
|
|
||||||
<!-- <Mobile />-->
|
|
||||||
<!-- </el-tab-pane>-->
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<Scan v-if="state.isScan" />
|
<Scan v-if="state.isScan" />
|
||||||
@ -36,13 +34,11 @@ import { defineAsyncComponent, onMounted, reactive, computed } from 'vue';
|
|||||||
import { storeToRefs } from 'pinia';
|
import { storeToRefs } from 'pinia';
|
||||||
import { useThemeConfig } from '/@/stores/themeConfig';
|
import { useThemeConfig } from '/@/stores/themeConfig';
|
||||||
import { NextLoading } from '/@/utils/loading';
|
import { NextLoading } from '/@/utils/loading';
|
||||||
import logoMini from '/@/assets/logo-mini.svg';
|
|
||||||
import loginMain from '/@/assets/login-main.svg';
|
|
||||||
import loginBg from '/@/assets/login-bg.svg';
|
import loginBg from '/@/assets/login-bg.svg';
|
||||||
|
import {Check} from "@element-plus/icons-vue";
|
||||||
|
|
||||||
// 引入组件
|
// 引入组件
|
||||||
const Account = defineAsyncComponent(() => import('/@/views/login/component/account.vue'));
|
const Account = defineAsyncComponent(() => import('/@/views/login/component/account.vue'));
|
||||||
const Mobile = defineAsyncComponent(() => import('/@/views/login/component/mobile.vue'));
|
|
||||||
const Scan = defineAsyncComponent(() => import('/@/views/login/component/scan.vue'));
|
const Scan = defineAsyncComponent(() => import('/@/views/login/component/scan.vue'));
|
||||||
|
|
||||||
// 定义变量内容
|
// 定义变量内容
|
||||||
@ -64,6 +60,7 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
||||||
.login-container {
|
.login-container {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: var(--el-color-white);
|
background: var(--el-color-white);
|
||||||
@ -137,6 +134,18 @@ onMounted(() => {
|
|||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background-color: var(--el-color-white);
|
background-color: var(--el-color-white);
|
||||||
|
.languageBox{
|
||||||
|
position: absolute;
|
||||||
|
top: 16px;
|
||||||
|
right: 24px;
|
||||||
|
.languageBoxItem{
|
||||||
|
font-size: 16px;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
.languageBoxItem_action{
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
.login-right-warp-one,
|
.login-right-warp-one,
|
||||||
.login-right-warp-two {
|
.login-right-warp-two {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -52,9 +52,20 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<template #print="{ row }">
|
||||||
|
<div class="btnList">
|
||||||
|
<el-button type="text" @click="barCodeFunDataRow(row)">{{ t('message.index.print') }}</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #deleteText="{ row }">
|
||||||
|
<div class="btnList">
|
||||||
|
<el-button v-if="row.ifHidden === 0" type="text" @click="invoiceOrderDeleteOrderFun(row)">{{ t('message.index.deleteText') }}</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<template #menu="{ row }">
|
<template #menu="{ row }">
|
||||||
<div class="btnList">
|
<div class="btnList">
|
||||||
<el-button type="text" @click="barCodeFunDataRow(row)">{{ t('message.index.print') }}</el-button>
|
<el-button type="text" @click="barCodeFunDataRow(row)">{{ t('message.index.print') }}</el-button>
|
||||||
|
<el-button v-if="row.ifHidden === 0" type="text" @click="invoiceOrderDeleteOrderFun(row)">{{ t('message.index.deleteText') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</avue-crud>
|
</avue-crud>
|
||||||
@ -78,6 +89,7 @@ import { listApi } from '../../api/list/index';
|
|||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import SelectedData from '/@/views/materialReceiptNotice/selectedData.vue';
|
import SelectedData from '/@/views/materialReceiptNotice/selectedData.vue';
|
||||||
import barCode from './barCode.vue'
|
import barCode from './barCode.vue'
|
||||||
|
import {ElMessage, ElMessageBox} from "element-plus";
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const crudRef = ref();
|
const crudRef = ref();
|
||||||
// 定义变量内容
|
// 定义变量内容
|
||||||
@ -99,6 +111,7 @@ const state = reactive({
|
|||||||
selection: false,
|
selection: false,
|
||||||
searchMenuSpan: 3,
|
searchMenuSpan: 3,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
|
menu:false,
|
||||||
column: [
|
column: [
|
||||||
{ label: '', prop: 'checkboxBox', width: 35 },
|
{ label: '', prop: 'checkboxBox', width: 35 },
|
||||||
{ label: computed(()=> t('message.index.deliveryDate')), prop: 'deliveryDate' },
|
{ label: computed(()=> t('message.index.deliveryDate')), prop: 'deliveryDate' },
|
||||||
@ -113,6 +126,8 @@ const state = reactive({
|
|||||||
{ label: computed(() => t('message.index.deliveryQTY')), prop: 'qty' },
|
{ label: computed(() => t('message.index.deliveryQTY')), prop: 'qty' },
|
||||||
{ label: computed(() => t('message.index.POQTY')), prop: 'purchaseQty' },
|
{ label: computed(() => t('message.index.POQTY')), prop: 'purchaseQty' },
|
||||||
{ label: computed(() => t('message.index.unit')), prop: 'unitName' },
|
{ label: computed(() => t('message.index.unit')), prop: 'unitName' },
|
||||||
|
{ label: computed(() => t('message.index.print')), prop: 'print',width: 80 },
|
||||||
|
{ label: computed(() => t('message.index.deleteText')), prop: 'deleteText',width: 80 },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
data: [],
|
data: [],
|
||||||
@ -135,6 +150,34 @@ const elDatePickerFun = (val: any) => {
|
|||||||
state.formData.fDateBegin = val[0];
|
state.formData.fDateBegin = val[0];
|
||||||
state.formData.fDateEmd = val[1];
|
state.formData.fDateEmd = val[1];
|
||||||
};
|
};
|
||||||
|
const invoiceOrderDeleteOrderFun = (row) => {
|
||||||
|
ElMessageBox({
|
||||||
|
closeOnClickModal: false,
|
||||||
|
closeOnPressEscape: false,
|
||||||
|
title: t('message.index.prompt'),
|
||||||
|
message: t('message.index.scqd'),
|
||||||
|
confirmButtonText: t('message.index.confirm'),
|
||||||
|
cancelButtonText: t('message.user.logOutCancel'),
|
||||||
|
showCancelButton: true,
|
||||||
|
buttonSize: 'default',
|
||||||
|
beforeClose: (action, instance, done) => {
|
||||||
|
if (action === 'confirm') {
|
||||||
|
instance.confirmButtonLoading = true;
|
||||||
|
listApi().invoiceOrderDeleteOrder({id:row.id}).then((res:any) => {
|
||||||
|
done()
|
||||||
|
getList()
|
||||||
|
if(res.resultCode === 0){
|
||||||
|
ElMessage.success(t('message.index.success'))
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
const selectionChange = (row: any) => {
|
const selectionChange = (row: any) => {
|
||||||
if (row.checkboxBox == '1') {
|
if (row.checkboxBox == '1') {
|
||||||
state.data.forEach((item: any) => {
|
state.data.forEach((item: any) => {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="selectItem">
|
<div class="selectItem">
|
||||||
<el-select :placeholder="t('message.index.DocStatus')" size="default" style="width: 12vw" v-model="state.formData.fmrpCloseStatus">
|
<el-select :placeholder="t('message.index.DocStatus')" size="default" style="width: 12vw" v-model="state.formData.fmrpCloseStatus">
|
||||||
<el-option v-for="item in state.option.column[2].dicData" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in state.option.column[9].dicData" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="selectItem">
|
<div class="selectItem">
|
||||||
@ -205,6 +205,7 @@ const selectionChange = (list: any) => {
|
|||||||
state.selectedData = JSON.parse(JSON.stringify(list));
|
state.selectedData = JSON.parse(JSON.stringify(list));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const chengNuoJiaoQiPFun = (e: string) => {
|
const chengNuoJiaoQiPFun = (e: string) => {
|
||||||
if (state.selectedData.length != 0) {
|
if (state.selectedData.length != 0) {
|
||||||
let arr: any = [];
|
let arr: any = [];
|
||||||
|
@ -15,65 +15,25 @@
|
|||||||
</template>
|
</template>
|
||||||
<template #notSendQty="{ row }">
|
<template #notSendQty="{ row }">
|
||||||
<div style="display: flex; align-items: center; justify-content: center">
|
<div style="display: flex; align-items: center; justify-content: center">
|
||||||
<el-input-number v-model="row.notSendQty" size="small" />
|
<el-input-number v-model="row.notSendQtyText" size="small" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<!-- <template #chengNuoJiaoQi="{ row }">-->
|
|
||||||
<!-- <div style="display: flex; align-items: center; justify-content: center">-->
|
|
||||||
<!-- <el-date-picker-->
|
|
||||||
<!-- v-model="row.chengNuoJiaoQi"-->
|
|
||||||
<!-- type="date"-->
|
|
||||||
<!-- size="small"-->
|
|
||||||
<!-- style="width: 100%"-->
|
|
||||||
<!-- format="YYYY/MM/DD"-->
|
|
||||||
<!-- @change="batchSetChengNuoJiaoQiFun([{ id: row.id, newTime: row.chengNuoJiaoQi }])"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- <template #newChengNuoJiaoQi="{ row }">-->
|
|
||||||
<!-- <div style="display: flex; align-items: center; justify-content: center">-->
|
|
||||||
<!-- <el-date-picker-->
|
|
||||||
<!-- v-model="row.newChengNuoJiaoQi"-->
|
|
||||||
<!-- type="date"-->
|
|
||||||
<!-- size="small"-->
|
|
||||||
<!-- style="width: 100%"-->
|
|
||||||
<!-- format="YYYY/MM/DD"-->
|
|
||||||
<!-- @change="batchSetNewChengNuoJiaoQiFun([{ id: row.id, newTime: row.newChengNuoJiaoQi }])"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- <template #menu-left>-->
|
|
||||||
<!-- <div class="selectBoxes">-->
|
|
||||||
<!-- <el-date-picker-->
|
|
||||||
<!-- v-model="state.chengNuoJiaoQiP"-->
|
|
||||||
<!-- type="date"-->
|
|
||||||
<!-- placeholder="批量修改选中承诺日期"-->
|
|
||||||
<!-- style="width: 190px"-->
|
|
||||||
<!-- @change="chengNuoJiaoQiPFun('0')"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- <el-date-picker-->
|
|
||||||
<!-- v-model="state.newChengNuoJiaoQiP"-->
|
|
||||||
<!-- type="date"-->
|
|
||||||
<!-- placeholder="批量修改选中承诺最新交期"-->
|
|
||||||
<!-- style="width: 190px; margin-left: 12px"-->
|
|
||||||
<!-- @change="chengNuoJiaoQiPFun('1')"-->
|
|
||||||
<!-- />-->
|
|
||||||
<!-- <el-input v-model="state.fSupplierLot" style="width: 190px; margin-left: 12px" placeholder="批号" @input="fSupplierLotFun" />-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
</avue-crud>
|
</avue-crud>
|
||||||
<div class="btnList">
|
<div class="btnList">
|
||||||
<el-button type="primary" :loading="state.loading" @click="batchAddInvoiceOrderFun">{{ t('message.index.confirm') }}</el-button>
|
<el-button type="primary" :loading="state.loading" @click="batchAddInvoiceOrderFun">{{ t('message.index.confirm') }} </el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { defineProps, reactive, defineEmits, watch, computed } from 'vue';
|
import { defineProps, reactive, defineEmits, watch, computed } from 'vue';
|
||||||
import { listApi } from '../../api/list/index';
|
import { listApi } from '../../api/list/index';
|
||||||
|
// import { useClipboard } from 'vue-clipboard3';
|
||||||
|
// const { copy } = useClipboard();
|
||||||
|
import useClipboard from 'vue-clipboard3';
|
||||||
|
const { toClipboard } = useClipboard();
|
||||||
const emits = defineEmits(['generateDocuments', 'close']);
|
const emits = defineEmits(['generateDocuments', 'close']);
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { ElMessage } from 'element-plus';
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -130,65 +90,11 @@ watch(
|
|||||||
() => props.listData,
|
() => props.listData,
|
||||||
() => {
|
() => {
|
||||||
state.data = props.listData;
|
state.data = props.listData;
|
||||||
|
state.data.forEach((item: any) => {
|
||||||
|
item.notSendQtyText = item.notSendQty;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const fSupplierLotFun = () => {
|
|
||||||
state.data.forEach((item: any) => {
|
|
||||||
item.fSupplierLot = state.fSupplierLot;
|
|
||||||
});
|
|
||||||
console.log(state.data);
|
|
||||||
// state.fSupplierLot = '';
|
|
||||||
};
|
|
||||||
const chengNuoJiaoQiPFun = (e: string) => {
|
|
||||||
let arr: any = [];
|
|
||||||
if (e === '0') {
|
|
||||||
state.data.forEach((item: any) => {
|
|
||||||
arr.push({ id: item.id, newTime: state.chengNuoJiaoQiP });
|
|
||||||
});
|
|
||||||
batchSetChengNuoJiaoQiFun(arr);
|
|
||||||
}
|
|
||||||
if (e === '1') {
|
|
||||||
state.data.forEach((item: any) => {
|
|
||||||
arr.push({ id: item.id, newTime: state.newChengNuoJiaoQiP });
|
|
||||||
});
|
|
||||||
batchSetNewChengNuoJiaoQiFun(arr);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const batchSetChengNuoJiaoQiFun = (arr: any) => {
|
|
||||||
listApi()
|
|
||||||
.batchSetChengNuoJiaoQi(arr)
|
|
||||||
.then((res: any) => {
|
|
||||||
if (res.resultCode === 0) {
|
|
||||||
ElMessage.success('操作成功');
|
|
||||||
state.data.forEach((item: any) => {
|
|
||||||
item.chengNuoJiaoQi = state.chengNuoJiaoQiP;
|
|
||||||
});
|
|
||||||
// state.chengNuoJiaoQiP = '';
|
|
||||||
}
|
|
||||||
if (res.resultCode === -1) {
|
|
||||||
ElMessage.success(res.errorMessage);
|
|
||||||
// state.newChengNuoJiaoQiP = '';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
const batchSetNewChengNuoJiaoQiFun = (arr: any) => {
|
|
||||||
listApi()
|
|
||||||
.batchSetNewChengNuoJiaoQi(arr)
|
|
||||||
.then((res: any) => {
|
|
||||||
if (res.resultCode === 0) {
|
|
||||||
ElMessage.success('操作成功');
|
|
||||||
|
|
||||||
state.data.forEach((item: any) => {
|
|
||||||
item.newChengNuoJiaoQi = state.newChengNuoJiaoQiP;
|
|
||||||
});
|
|
||||||
// state.chengNuoJiaoQiP = '';
|
|
||||||
}
|
|
||||||
if (res.resultCode === -1) {
|
|
||||||
ElMessage.success(res.errorMessage);
|
|
||||||
// state.newChengNuoJiaoQiP = '';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
const batchAddInvoiceOrderFun = () => {
|
const batchAddInvoiceOrderFun = () => {
|
||||||
if (props.listData.length != 0) {
|
if (props.listData.length != 0) {
|
||||||
state.loading = true;
|
state.loading = true;
|
||||||
@ -197,7 +103,7 @@ const batchAddInvoiceOrderFun = () => {
|
|||||||
props.listData.forEach((item: any) => {
|
props.listData.forEach((item: any) => {
|
||||||
arr.push({
|
arr.push({
|
||||||
id: item.id,
|
id: item.id,
|
||||||
qty: item.notSendQty,
|
qty: item.notSendQtyText,
|
||||||
fSupplierLot: item.fSupplierLot,
|
fSupplierLot: item.fSupplierLot,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -206,15 +112,32 @@ const batchAddInvoiceOrderFun = () => {
|
|||||||
.then((res: any) => {
|
.then((res: any) => {
|
||||||
state.loading = false;
|
state.loading = false;
|
||||||
if (res.resultCode === 0) {
|
if (res.resultCode === 0) {
|
||||||
ElMessage.success('操作成功');
|
ElMessage.success(t('message.index.success'));
|
||||||
emits('generateDocuments');
|
emits('generateDocuments');
|
||||||
|
ElMessageBox({
|
||||||
|
closeOnClickModal: false,
|
||||||
|
closeOnPressEscape: false,
|
||||||
|
title: t('message.index.prompt'),
|
||||||
|
message: t('message.index.deliveryNote') + ':' + res.data,
|
||||||
|
confirmButtonText: t('message.index.copy'),
|
||||||
|
showCancelButton: false,
|
||||||
|
buttonSize: 'default',
|
||||||
|
beforeClose: (action, instance, done) => {
|
||||||
|
if (action === 'confirm') {
|
||||||
|
toClipboard(res.data)
|
||||||
|
ElMessage.success(t('message.index.success'))
|
||||||
|
} else {
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (res.resultCode === -1) {
|
if (res.resultCode === -1) {
|
||||||
ElMessage.error(res.errorMessage);
|
ElMessage.error(res.errorMessage);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error('没有数据');
|
ElMessage.error(t('message.index.noData'));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const closeFun = () => {
|
const closeFun = () => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user