中英文翻译

This commit is contained in:
刘晓鹏 2025-04-15 19:46:09 +08:00
parent 2ab2d3df93
commit dcfd44da94
12 changed files with 157 additions and 127 deletions

View File

@ -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

View File

@ -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
View File

@ -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"

View File

@ -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",

View File

@ -95,5 +95,13 @@ export function listApi() {
params:data, params:data,
}); });
}, },
//删除某个发货订单
invoiceOrderDeleteOrder: (data: object) => {
return request({
url: '/api/Admin/InvoiceOrder/DeleteOrder',
method: 'post',
data,
});
},
}; };
} }

View File

@ -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?'
}, },
}; };

View File

@ -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:'确定要删除该条送货单?'
}, },
}; };

View File

@ -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());

View File

@ -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;

View File

@ -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) => {

View File

@ -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 = [];

View File

@ -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 = () => {