版本修改

This commit is contained in:
刘晓鹏 2025-04-21 15:55:42 +08:00
parent dcfd44da94
commit 54f1af048d
16 changed files with 300 additions and 119 deletions

View File

@ -17,16 +17,7 @@
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
<script type="text/javascript">
var _hmt = _hmt || [];
(function () {
var hm = document.createElement('script');
hm.src = 'https://hm.baidu.com/hm.js?d9c8b87d10717013641458b300c552e4';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script type="module" src="/src/main.ts"></script> <script type="module" src="/src/main.ts"></script>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=wsijQt8sLXrCW71YesmispvYHitfG9gv&s=1"></script> <!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=wsijQt8sLXrCW71YesmispvYHitfG9gv&s=1"></script>-->
</body> </body>
</html> </html>

View File

@ -103,5 +103,13 @@ export function listApi() {
data, data,
}); });
}, },
//采购信息
getFPurchaseOrgList: (data: object) => {
return request({
url: '/api/Admin/Login/GetFPurchaseOrgList',
method: 'get',
params:data,
});
},
}; };
} }

View File

@ -23,5 +23,13 @@ export function useLoginApi() {
data, data,
}); });
}, },
//获取用户信息
getAccountInfo: (data: object) => {
return request({
url: '/api/Admin/Login/GetAccountInfo',
method: 'get',
params:data,
});
},
}; };
} }

View File

@ -16,6 +16,7 @@ export default {
items: 'items', items: 'items',
proceed: 'proceed', proceed: 'proceed',
date: 'Date', date: 'Date',
date1: 'Date',
status: 'Status', status: 'Status',
unclosed: 'Unclosed', unclosed: 'Unclosed',
partNumber: 'Part Number', partNumber: 'Part Number',
@ -55,9 +56,12 @@ export default {
passwordChangedFailed:'Password changed failed', passwordChangedFailed:'Password changed failed',
shipmentQTY:'Shipment QTY', shipmentQTY:'Shipment QTY',
invoiceNumber:'Invoice number', invoiceNumber:'Invoice number',
invoiceNumber1:'Invoice #',
deliveryNote1:'Delivery Note', deliveryNote1:'Delivery Note',
deliveryNoteNumber:'Delivery Note Number', deliveryNoteNumber:'Delivery Note Number',
deliveryNoteNumber1:'GRN #',
PO:'PO #', PO:'PO #',
PO1:'PO #',
shipper:'Shipper', shipper:'Shipper',
year:'Year', year:'Year',
month:'Mnth', month:'Mnth',
@ -69,6 +73,7 @@ export default {
success:'Success', success:'Success',
copy:'Copy', copy:'Copy',
deleteText:'Delete', deleteText:'Delete',
scqd:'Please confirm the deletion of the delivery note?' scqd:'Please confirm the deletion of the delivery note?',
receiver:'Receiver'
}, },
}; };

View File

@ -16,6 +16,7 @@ export default {
items: '条数据', items: '条数据',
proceed: '去查看', proceed: '去查看',
date: '日期', date: '日期',
date1: '采购日期',
status: '关闭状态', status: '关闭状态',
unclosed: '未关闭', unclosed: '未关闭',
partNumber: '物料编码', partNumber: '物料编码',
@ -23,15 +24,16 @@ export default {
unit: '采购单位', unit: '采购单位',
unit1: '单位', unit1: '单位',
qty: '采购数量', qty: '采购数量',
requestDate: '交货日期', requestDate: '需求日期',
receivedQTY: '累计已送货数量', receivedQTY: '累计已送货数量',
unreceivedQTY: '未发货数量', unreceivedQTY: '未发货数量',
earliestDeliveryDate: '供应商承诺交期', earliestDeliveryDate: '供应商承诺交期',
latestDeliveryDate: '供应商承诺交期', latestDeliveryDate: '供应商承诺最新交期',
view: '查看', view: '查看',
batchUpdateEarliestDeliveryDate: '批量修改选中承诺日期', batchUpdateEarliestDeliveryDate: '批量修改选中承诺日期',
batchUpdateLatestDeliveryDate: '批量修改选中承诺最新交期', batchUpdateLatestDeliveryDate: '批量修改选中承诺最新交期',
specification: '物料规格', specification: '物料规格',
xsddh:'销售订单号',
/*发货订单及其明细*/ /*发货订单及其明细*/
startDate: '开始送货日期', startDate: '开始送货日期',
@ -56,9 +58,12 @@ export default {
prompt:'提示', prompt:'提示',
pleaseConfirmTheDateChange:'是否修改此项日期', pleaseConfirmTheDateChange:'是否修改此项日期',
invoiceNumber:'发票号', invoiceNumber:'发票号',
invoiceNumber1:'发票号',
deliveryNote1:'采购送货单', deliveryNote1:'采购送货单',
deliveryNoteNumber:'收料通知单编号(送货单号)', deliveryNoteNumber:'收料通知单编号(送货单号)',
deliveryNoteNumber1:'收料通知单编号',
PO:'PO号', PO:'PO号',
PO1:'采购订单号',
shipper:'送货人', shipper:'送货人',
year:'年', year:'年',
month:'月', month:'月',
@ -70,6 +75,7 @@ export default {
success:'成功', success:'成功',
copy:'复制', copy:'复制',
deleteText:'删除', deleteText:'删除',
scqd:'确定要删除该条送货单?' scqd:'确定要删除该条送货单?',
receiver:'接收人',
}, },
}; };

View File

@ -109,12 +109,14 @@ const onSignIn = () => {
passWord: state.ruleForm.password, passWord: state.ruleForm.password,
}).then( async (res:any) => { }).then( async (res:any) => {
state.loading.signIn = false; state.loading.signIn = false;
console.log(res) useLoginApi().getAccountInfo({}).then((resUser:any) => {
Local.set('setUserInfo',resUser.data);
Cookies.set('userName', resUser.data.name);
})
if(res.data !== null){ if(res.data !== null){
// token // token
Session.set('token', res.data); Session.set('token', res.data);
// `/src/stores/userInfo.ts` // `/src/stores/userInfo.ts`
Cookies.set('userName', state.ruleForm.userName);
if (!themeConfig.value.isRequestRoutes) { if (!themeConfig.value.isRequestRoutes) {
// 2 // 2
const isNoPower = await initFrontEndControlRoutes(); const isNoPower = await initFrontEndControlRoutes();
@ -126,6 +128,7 @@ const onSignIn = () => {
// initBackEndControlRoutes signInSuccess // initBackEndControlRoutes signInSuccess
signInSuccess(isNoPower); signInSuccess(isNoPower);
} }
} }
}) })

View File

@ -15,16 +15,16 @@
</div> </div>
</div> </div>
</div> </div>
<div class="btnList"> <div class="btnList">
<el-button type="primary" @click="handlePrint">打印</el-button> <el-button type="primary" @click="handlePrint">打印</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { defineProps, reactive, ref, nextTick, defineEmits } from 'vue'; import { defineProps, reactive, ref, defineEmits } from 'vue';
import VueQr from 'vue-qr/src/packages/vue-qr.vue'; import VueQr from 'vue-qr/src/packages/vue-qr.vue';
import printJS from 'print-js'; import printJS from 'print-js';
import html2canvas from "html2canvas";
const typefaceBoxRef = ref(); const typefaceBoxRef = ref();
const emits = defineEmits(['close']); const emits = defineEmits(['close']);
const props = defineProps({ const props = defineProps({
@ -42,17 +42,23 @@ const props = defineProps({
const state = reactive({ const state = reactive({
snapshotUrl: '', snapshotUrl: '',
}); });
const handlePrint = () => { const handlePrint = async () => {
const canvas = await html2canvas(typefaceBoxRef.value, {
allowTaint: true, //
useCORS: true, // 使 CORS
scale: 2, //
width: typefaceBoxRef.value.clientWidth,
height: typefaceBoxRef.value.clientHeight,
});
state.snapshotUrl = canvas.toDataURL('image/png');
// DOM // DOM
const printElement = document.getElementById('printTemplate'); const printElement = document.getElementById('printTemplate');
if (printElement) { if (printElement) {
printJS({ printJS({
printable: printElement, printable: state.snapshotUrl,
type: 'html', type: 'image',
targetStyles: ['*'],
style: ` style: `
@page { size: 100mm 52mm landscapes; margin: 0; } @page { size: 100mm 50mm landscapes; margin: 0; }
`, `,
}); });
} }

View File

@ -2,18 +2,24 @@
<div class="orderPrinting" ref="orderPrintingRef"> <div class="orderPrinting" ref="orderPrintingRef">
<div class="title">{{ t('message.index.deliveryNote1') }}</div> <div class="title">{{ t('message.index.deliveryNote1') }}</div>
<div class="orderPrintingTop"> <div class="orderPrintingTop">
<div class="item item1"> <div class="item item1" style="">
<VueQr style="width: 150px; height: 150px" :text="state.pageData.fBillNo" :size="150"></VueQr> <div>{{ t('message.index.deliveryNoteNumber1') }}</div>
<VueQr style="width: 130px; height: 130px" :text="state.pageData.fBillNo" :size="130"></VueQr>
</div> </div>
<div class="item item2"> <div class="item item2">
<div class="dataText"> <div class="dataText">
<span class="span1">{{ t('message.index.deliveryNoteNumber') }}</span> <span class="span1">{{ t('message.index.deliveryNoteNumber') }}</span>
<span class="span2">{{ state.pageData.fBillNo }}</span> <span class="span2">{{ state.pageData.fBillNo }}</span>
</div> </div>
<div class="dataText">
<span class="span1">客户</span>
<span class="span2">{{ state.pageData.fBillNo }}</span>
</div>
<div class="dataText"> <div class="dataText">
<span class="span1">{{ t('message.index.supplierName') }}</span> <span class="span1">{{ t('message.index.supplierName') }}</span>
<span class="span2">{{ state.pageData.supplierName }}</span> <span class="span2">{{ state.pageData.supplierName }}</span>
</div> </div>
<div class="dataText"> <div class="dataText">
<span class="span1">{{ t('message.index.deliveryDate') }}</span> <span class="span1">{{ t('message.index.deliveryDate') }}</span>
<span class="span2">{{ state.pageData.deliveryDate }}</span> <span class="span2">{{ state.pageData.deliveryDate }}</span>
@ -24,11 +30,13 @@
</div> </div>
</div> </div>
<div class="item item3"> <div class="item item3">
<VueQr style="width: 150px; height: 150px" :text="state.pageData.f_VHUB_Text" :size="150"></VueQr> <div>{{ t('message.index.invoiceNumber1') }}</div>
<VueQr style="width: 130px; height: 130px" :text="state.pageData.f_VHUB_Text" :size="130"></VueQr>
</div> </div>
</div> </div>
<avue-crud ref="crudRef" :data="props.data" :option="state.option"></avue-crud> <avue-crud ref="crudRef" :data="props.data" :option="state.option"></avue-crud>
<div class="shuming"> <div class="shuming">
<div>
<div class="nameText">{{ t('message.index.shipper') }}</div> <div class="nameText">{{ t('message.index.shipper') }}</div>
<div class="dateTime"> <div class="dateTime">
<span>{{ t('message.index.year') }}</span> <span>{{ t('message.index.year') }}</span>
@ -36,6 +44,15 @@
<span>{{ t('message.index.day') }}</span> <span>{{ t('message.index.day') }}</span>
</div> </div>
</div> </div>
<div>
<div class="nameText">{{ t('message.index.receiver') }}</div>
<div class="dateTime">
<span>{{ t('message.index.year') }}</span>
<span>{{ t('message.index.month') }}</span>
<span>{{ t('message.index.day') }}</span>
</div>
</div>
</div>
</div> </div>
</template> </template>
@ -104,9 +121,14 @@ defineExpose({
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-form){
border-right: 0 !important;
}
.shuming { .shuming {
width: 100%; width: 100%;
text-align: right; display: flex;
justify-content: space-between;
//text-align: left;
} }
.nameText { .nameText {
margin-right: 120px; margin-right: 120px;
@ -186,7 +208,7 @@ defineExpose({
.dataText { .dataText {
font-size: 16px; font-size: 16px;
margin-bottom: 16px; margin-bottom: 8px;
color: #000000; color: #000000;
} }
} }

View File

@ -0,0 +1,11 @@
<script setup lang="ts">
</script>
<template>
</template>
<style scoped lang="scss">
</style>

View File

@ -15,6 +15,7 @@
</div> </div>
</template> </template>
<template #deliveryDate="{ row }">{{ row.ifHidden === 0 ? row.deliveryDate : '' }}</template> <template #deliveryDate="{ row }">{{ row.ifHidden === 0 ? row.deliveryDate : '' }}</template>
<template #purchaseOrderFBillNo="{ row }">{{ row.ifHidden === 0 ? row.purchaseOrderFBillNo : '' }}</template>
<template #sheet="{ row }">{{ row.ifHidden === 0 ? row.sheet : '' }}</template> <template #sheet="{ row }">{{ row.ifHidden === 0 ? row.sheet : '' }}</template>
<template #materialName="{ row }"> <template #materialName="{ row }">
<el-tooltip :content="row.materialName" placement="top"> <el-tooltip :content="row.materialName" placement="top">
@ -25,7 +26,7 @@
<el-tooltip :content="row.supplierName" placement="top"> <el-tooltip :content="row.supplierName" placement="top">
<div class="multi-line-omit">{{ row.supplierName }}</div> <div class="multi-line-omit">{{ row.supplierName }}</div>
</el-tooltip> </el-tooltip>
</template> </template>43
<template #menu-left> <template #menu-left>
<div class="selectBoxes"> <div class="selectBoxes">
<div class="selectItem"> <div class="selectItem">
@ -54,7 +55,7 @@
</template> </template>
<template #print="{ row }"> <template #print="{ row }">
<div class="btnList"> <div class="btnList">
<el-button type="text" @click="barCodeFunDataRow(row)">{{ t('message.index.print') }}</el-button> <el-button v-if="row.ifHidden === 0" type="text" @click="barCodeFunDataRow(row)">{{ t('message.index.print') }}</el-button>
</div> </div>
</template> </template>
<template #deleteText="{ row }"> <template #deleteText="{ row }">
@ -73,18 +74,14 @@
<selectedData <selectedData
:listData="state.selectedData" :listData="state.selectedData"
:showes="state.selectedDataShow" :showes="state.selectedDataShow"
@close=" @close="() => { state.selectedDataShow = false; }"
() => {
state.selectedDataShow = false;
}
"
/> />
<barCode :showes="state.barCodeShow" :data="state.barCodeItem" @close="() => { state.barCodeShow = false }"/> <barCode :showes="state.barCodeShow" :data="state.barCodeItem" @close="() => { state.barCodeShow = false }"/>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted, computed, nextTick, ref } from 'vue'; import { reactive, onMounted, computed, ref } from 'vue';
import { listApi } from '../../api/list/index'; 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';
@ -115,15 +112,16 @@ const state = reactive({
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' },
{ label: computed(()=> t('message.index.deliveryDate')), prop: 'sheet', width: '135' }, { label: computed(()=> t('message.index.deliveryNote')), prop: 'sheet', width: '135' },
{ label: computed(()=> t('message.index.PO1')), prop: 'purchaseOrderFBillNo', width: '135' },
{ label: computed(()=> t('message.index.maxcessLot')), prop: 'mssSupplierLot' }, { label: computed(()=> t('message.index.maxcessLot')), prop: 'mssSupplierLot' },
{ label: computed(()=> t('message.index.supplierLot')), prop: 'fSupplierLot' }, { label: computed(()=> t('message.index.supplierLot')), prop: 'fSupplierLot' },
{ label: computed(()=> t('message.index.partNumber')), prop: 'materialCode', width: '120' }, { label: computed(()=> t('message.index.partNumber')), prop: 'materialCode', width: '120' },
{ label: computed(()=> t('message.index.materialName')), prop: 'materialName' }, { label: computed(()=> t('message.index.materialName')), prop: 'materialName' },
{ label: computed(() => t('message.index.supplierCode')), prop: 'supplierId', width: '90' }, { label: computed(() => t('message.index.supplierCode')), prop: 'supplierId', width: '90' },
{ label: computed(() => t('message.index.supplierName')), prop: 'supplierName', width: '120' }, { label: computed(() => t('message.index.supplierName')), prop: 'supplierName', width: '120' },
{ label: computed(() => t('message.index.receivedQTY')), prop: 'sendedQty', width: '110' }, // { label: computed(() => t('message.index.receivedQTY')), prop: 'sendedQty', width: '110' },
{ label: computed(() => t('message.index.deliveryQTY')), prop: 'qty' }, { label: computed(() => t('message.index.shipmentQTY')), 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.print')), prop: 'print',width: 80 },
@ -150,7 +148,7 @@ 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) => { const invoiceOrderDeleteOrderFun = (row:any) => {
ElMessageBox({ ElMessageBox({
closeOnClickModal: false, closeOnClickModal: false,
closeOnPressEscape: false, closeOnPressEscape: false,
@ -168,7 +166,6 @@ const invoiceOrderDeleteOrderFun = (row) => {
getList() getList()
if(res.resultCode === 0){ if(res.resultCode === 0){
ElMessage.success(t('message.index.success')) ElMessage.success(t('message.index.success'))
} }
}) })
} else { } else {
@ -206,7 +203,7 @@ const selectionChange = (row: any) => {
state.selectedData = []; state.selectedData = [];
} }
}; };
const barCodeFunDataRow = (row) => { const barCodeFunDataRow = (row:any) => {
state.barCodeItem = row state.barCodeItem = row
state.barCodeShow = true state.barCodeShow = true
} }
@ -257,38 +254,25 @@ onMounted(() => {});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
//.el-checkbox__inner:nth-child(1){
// display: none;
//}
:deep(.el-checkbox--default):nth-child(0) { :deep(.el-checkbox--default):nth-child(0) {
display: none !important; display: none !important;
} }
:deep(.el-checkbox) { :deep(.el-checkbox) {
height: 15px !important; height: 15px !important;
} }
:deep(.cell) { :deep(.cell) {
padding: 0 8px !important; padding: 0 8px !important;
} }
:deep(.avue-crud__left) { :deep(.avue-crud__left) {
flex: 1; flex: 1;
} }
:deep(.el-button--text) { :deep(.el-button--text) {
padding: 0 !important; padding: 0 !important;
height: auto !important; height: auto !important;
} }
:deep(.avue-crud__refreshBtn) {
display: none;
}
:deep(.avue-crud__gridBtn) { :deep(.avue-crud__gridBtn) {
display: none; display: none;
} }
.piliang { .piliang {
margin-left: 12px; margin-left: 12px;
border: 1px solid #d5d5d5; border: 1px solid #d5d5d5;
@ -299,11 +283,9 @@ onMounted(() => {});
box-sizing: border-box; box-sizing: border-box;
padding: 4px; padding: 4px;
} }
.system-user-container { .system-user-container {
padding: 0 !important; padding: 0 !important;
} }
.multi-line-omit { .multi-line-omit {
word-break: break-all; // word-break: break-all; //
text-overflow: ellipsis; // text-overflow: ellipsis; //
@ -312,56 +294,45 @@ onMounted(() => {});
-webkit-line-clamp: 1; // -webkit-line-clamp: 1; //
-webkit-box-orient: vertical; // -- -webkit-box-orient: vertical; // --
} }
.selectBoxes { .selectBoxes {
display: flex; display: flex;
flex: 1; flex: 1;
.selectItem { .selectItem {
margin-right: 16px; margin-right: 16px;
display: flex; display: flex;
} }
} }
:deep(.avue-crud) { :deep(.avue-crud) {
height: 100%; height: 100%;
width: 100%; width: 100%;
} }
:deep(.avue-crud--card) { :deep(.avue-crud--card) {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex: 1; flex: 1;
} }
:deep(.avue-crud__body) { :deep(.avue-crud__body) {
flex: 1; flex: 1;
} }
:deep(.el-table__header) { :deep(.el-table__header) {
height: 40px; height: 40px;
} }
:deep(.el-card__body) { :deep(.el-card__body) {
width: 100% !important; width: 100% !important;
height: 100% !important; height: 100% !important;
overflow: hidden !important; overflow: hidden !important;
padding: 0 !important; padding: 0 !important;
} }
:deep(.el-table__cell) { :deep(.el-table__cell) {
padding: 0 !important; padding: 0 !important;
//height: 56px !important; //height: 56px !important;
} }
:deep(.el-card) { :deep(.el-card) {
padding: 12px; padding: 12px;
} }
:deep(.el-form) { :deep(.el-form) {
flex: 1; flex: 1;
} }
.system-user-container { .system-user-container {
:deep(.el-card__body) { :deep(.el-card__body) {
display: flex; display: flex;
@ -374,7 +345,6 @@ onMounted(() => {});
} }
} }
} }
:deep(.el-col) { :deep(.el-col) {
margin-bottom: 16px; margin-bottom: 16px;
} }

View File

@ -3,6 +3,7 @@
<div ref="ceshiRef"> <div ref="ceshiRef">
<ceshi id="ceshi" :data="props.listData"></ceshi> <ceshi id="ceshi" :data="props.listData"></ceshi>
</div> </div>
<div class="btnList"> <div class="btnList">
<el-button type="primary" @click="printElement">打印</el-button> <el-button type="primary" @click="printElement">打印</el-button>
</div> </div>
@ -35,7 +36,18 @@ const closeFun = () => {
const printElement = () => { const printElement = () => {
captureSnapshot(); captureSnapshot();
// DOM HTML // DOM HTML
nextTick(() => {
};
//
const captureSnapshot = async () => {
const canvas = await html2canvas(ceshiRef.value, {
allowTaint: true, //
useCORS: true, // 使 CORS
scale: 2, //
width: ceshiRef.value.clientWidth,
height: ceshiRef.value.clientHeight,
});
state.snapshotUrl = canvas.toDataURL('image/png');
printJS({ printJS({
printable: state.snapshotUrl, printable: state.snapshotUrl,
type: 'image', type: 'image',
@ -50,19 +62,6 @@ const printElement = () => {
} }
`, `,
}); });
});
};
//
const captureSnapshot = async () => {
// 使 html2canvas div Canvas
const canvas = await html2canvas(ceshiRef.value, {
allowTaint: true, //
useCORS: true, // 使 CORS
scale: 2, //
width: ceshiRef.value.clientWidth,
height: ceshiRef.value.clientHeight,
});
state.snapshotUrl = canvas.toDataURL('image/png');
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -71,4 +70,111 @@ const captureSnapshot = async () => {
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
:deep(.el-form){
border-right: 0 !important;
}
.shuming {
width: 100%;
display: flex;
justify-content: space-between;
//text-align: left;
}
.nameText {
margin-right: 120px;
margin-top: 80px;
}
.dateTime {
margin-right: 50px;
margin-top: 16px;
}
.dateTime > span {
margin-left: 42px;
}
:deep(.el-table__inner-wrapper) {
box-sizing: border-box;
//border: 1px solid black;
}
:deep(.is-leaf) {
border-color: black;
}
:deep(.el-table__cell) {
border-color: black;
}
:deep(.el-table__cell) {
border-color: black !important;
}
:deep(.el-card) {
border: 1px solid black !important;
}
:deep(.avue-crud__header) {
display: none;
}
:deep(.avue-crud__body) {
padding: 0 !important;
}
.orderPrinting {
width: 100%;
.title {
width: 100%;
height: 50px;
background-color: #deeaf6;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
letter-spacing: 10px;
}
.orderPrintingTop {
height: 161px;
border: 1px solid #000000;
box-sizing: border-box;
display: flex;
.item1 {
width: 33.33%;
height: 160px;
border-right: 1px solid #000000;
display: flex;
justify-content: center;
align-items: center;
}
.item2 {
width: 33.33%;
height: 160px;
border-right: 1px solid #000000;
box-sizing: border-box;
padding: 16px;
.dataText {
font-size: 16px;
margin-bottom: 16px;
color: #000000;
}
}
.item2 {
width: 33.33%;
height: 160px;
//border-right: 1px solid black;
}
.item3 {
width: 33.33%;
height: 160px;
display: flex;
justify-content: center;
align-items: center;
}
}
}
</style> </style>

View File

@ -82,6 +82,7 @@
style="width: 220px" style="width: 220px"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
:disabled="row.chengNuoJiaoQi != null"
@change="batchSetChengNuoJiaoQiFun([{ id: row.id, newTime: row.chengNuoJiaoQi }])" @change="batchSetChengNuoJiaoQiFun([{ id: row.id, newTime: row.chengNuoJiaoQi }])"
/> />
</template> </template>
@ -140,7 +141,7 @@ const state = reactive({
option: { option: {
height: computed(() => window.innerHeight - window.innerHeight * 0.23 + ''), height: computed(() => window.innerHeight - window.innerHeight * 0.23 + ''),
tip: false, tip: false,
index: true, index: false,
menu: true, menu: true,
menuWidth: 85, menuWidth: 85,
border: true, border: true,
@ -153,37 +154,42 @@ const state = reactive({
searchMenuSpan: 3, searchMenuSpan: 3,
addBtn: false, addBtn: false,
column: [ column: [
{ label: computed(() => t('message.index.DocNumber')), prop: 'fBillNo', searchSpan: 3, width: '125' }, { label: computed(() => t('message.index.DocNumber')), prop: 'fBillNo', searchSpan: 3, width: '125',filters: true },
{ label: computed(() => t('message.index.date')), prop: 'fDate', type: 'datetime', searchSpan: 6, searchRange: true }, { label: '销售订单号', prop: '', searchSpan: 3, width: '125',filters: true },
{ label: '手工销售订单号', prop: '', searchSpan: 3, width: '125',filters: true },
{ label: '采购组织', prop: 'fPurchaseOrgName', searchSpan: 3, width: '125',filters: true },
{ label: computed(() => t('message.index.date1')), prop: 'fDate', type: 'datetime', searchSpan: 6, searchRange: true,filters: true },
{ {
label: computed(() => t('message.index.status')), label: computed(() => t('message.index.status')),
prop: 'fCancelStatus', prop: 'fCancelStatus',
filters: true,
dicData: [ dicData: [
{ label: computed(() => t('message.index.closed')), value: 'A' }, { label: computed(() => t('message.index.unclosed')), value: 'A' },
{ label: computed(() => t('message.index.unclosed')), value: 'B' }, { label: computed(() => t('message.index.closed')), value: 'B' },
], ],
width: '90', width: '90',
}, },
{ label: computed(() => t('message.index.partNumber')), prop: 'materialCode', width: '120' }, { label: computed(() => t('message.index.partNumber')), prop: 'materialCode', width: '120',filters: true },
{ label: computed(() => t('message.index.materialName')), prop: 'materialName', width: '240' }, { label: computed(() => t('message.index.materialName')), prop: 'materialName', width: '240',filters: true },
{ label: computed(() => t('message.index.specification')), prop: 'guige', width: '120' }, // { label: computed(() => t('message.index.specification')), prop: 'guige', width: '120',filters: true },
{ label: computed(() => t('message.index.unit')), prop: 'unitName', width: '90' }, { label: computed(() => t('message.index.unit')), prop: 'unitName', width: '90',filters: true },
{ label: computed(() => t('message.index.qty')), prop: 'qty', width: '90' }, { label: computed(() => t('message.index.qty')), prop: 'qty', width: '90',filters: true },
{ label: computed(() => t('message.index.requestDate')), prop: 'fDeliveryDate', width: '165' }, { label: computed(() => t('message.index.requestDate')), prop: 'fDeliveryDate', width: '165',filters: true },
{ {
label: computed(() => t('message.index.DocStatus')), label: computed(() => t('message.index.DocStatus')),
prop: 'fmrpCloseStatus', prop: 'fmrpCloseStatus',
searchSpan: 3, searchSpan: 3,
filters: true,
dicData: [ dicData: [
{ label: computed(() => t('message.index.normal')), value: 'A' }, { label: computed(() => t('message.index.normal')), value: 'A' },
{ label: computed(() => t('message.index.closed')), value: 'B' }, { label: computed(() => t('message.index.closed')), value: 'B' },
], ],
width: '90', width: '90',
}, },
{ label: computed(() => t('message.index.receivedQTY')), prop: 'sendedQty', width: '110' }, { label: computed(() => t('message.index.receivedQTY')), prop: 'sendedQty', width: '130',filters: true },
{ label: computed(() => t('message.index.unreceivedQTY')), prop: 'notSendQty', width: '110' }, { label: computed(() => t('message.index.unreceivedQTY')), prop: 'notSendQty', width: '110',filters: true },
{ label: computed(() => t('message.index.earliestDeliveryDate')), prop: 'chengNuoJiaoQi', width: '160' }, { label: computed(() => t('message.index.earliestDeliveryDate')), prop: 'chengNuoJiaoQi', width: '160',filters: true },
{ label: computed(() => t('message.index.latestDeliveryDate')), prop: 'newChengNuoJiaoQi', width: '160' }, { label: computed(() => t('message.index.latestDeliveryDate')), prop: 'newChengNuoJiaoQi', width: '160',filters: true },
], ],
}, },
data: [], data: [],
@ -311,6 +317,7 @@ const batchSetChengNuoJiaoQiFun = (arr: any) => {
} }
}); });
} else { } else {
getList();
done(); done();
} }
}, },
@ -343,6 +350,7 @@ const batchSetNewChengNuoJiaoQiFun = (arr: any) => {
} }
}); });
} else { } else {
getList();
done(); done();
} }
}, },

View File

@ -53,6 +53,7 @@
style="width: 220px" style="width: 220px"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
:disabled="row.chengNuoJiaoQi != null"
@change="batchSetChengNuoJiaoQiFun([{id:row.id,newTime:row.chengNuoJiaoQi}])" @change="batchSetChengNuoJiaoQiFun([{id:row.id,newTime:row.chengNuoJiaoQi}])"
/> />
</template> </template>
@ -191,6 +192,7 @@ const chengNuoJiaoQiPFun = (e: string) => {
} }
}); });
} else { } else {
getList();
done(); done();
} }
}, },
@ -227,6 +229,7 @@ const chengNuoJiaoQiPFun = (e: string) => {
} }
}); });
} else { } else {
getList();
done(); done();
} }
}, },

View File

@ -78,6 +78,8 @@ const state = reactive({
{ label: computed(() => t('message.index.unreceivedQTY')), prop: 'notSendQtyText' }, { label: computed(() => t('message.index.unreceivedQTY')), prop: 'notSendQtyText' },
{ label: computed(() => t('message.index.supplierLot')), prop: 'fSupplierLot' }, { label: computed(() => t('message.index.supplierLot')), prop: 'fSupplierLot' },
{ label: computed(() => t('message.index.shipmentQTY')), prop: 'notSendQty', width: '180' }, { label: computed(() => t('message.index.shipmentQTY')), prop: 'notSendQty', width: '180' },
{ label: '包装数量', prop: '123'},
{ label: '条码张数', prop: '1233'},
{ label: computed(() => t('message.index.earliestDeliveryDate')), prop: 'chengNuoJiaoQi', width: '180' }, { label: computed(() => t('message.index.earliestDeliveryDate')), prop: 'chengNuoJiaoQi', width: '180' },
{ label: computed(() => t('message.index.latestDeliveryDate')), prop: 'newChengNuoJiaoQi', width: '180' }, { label: computed(() => t('message.index.latestDeliveryDate')), prop: 'newChengNuoJiaoQi', width: '180' },
], ],

View File

@ -34,6 +34,19 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
<el-form-item label="采购组织" prop="supplierId">
<el-select
placeholder="请选择采购组织"
size="default"
style="width: 240px"
v-model="state.ruleForm.fPurchaseOrgId"
@change="BDFPurchaseOrgListItemChange"
>
<el-option :label="item.text" :value="item.value" v-for="(item, index) of state.BDFPurchaseOrgList" :key="index" />
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="state.ruleForm.systemType === '0'"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="state.ruleForm.systemType === '0'">
<el-form-item label="供应商" prop="supplierId"> <el-form-item label="供应商" prop="supplierId">
<el-select <el-select
@ -75,7 +88,7 @@ const emit = defineEmits(['refresh']);
const userDialogFormRef = ref(); const userDialogFormRef = ref();
const state = reactive({ const state = reactive({
BDSupplierList:[], BDSupplierList:[],
BDSupplierListItem:null, BDFPurchaseOrgList:[],
ruleForm: { ruleForm: {
ifForeign:'0', ifForeign:'0',
systemType:'0', systemType:'0',
@ -84,7 +97,9 @@ const state = reactive({
mobile: '', // mobile: '', //
password: '', // password: '', //
supplierId:'', supplierId:'',
supplierName:'' supplierName:'',
fPurchaseOrgId:'',
fPurchaseOrgName:''
}, },
deptData: [] as DeptTreeType[], // deptData: [] as DeptTreeType[], //
dialog: { dialog: {
@ -116,6 +131,7 @@ const openDialog = (type: string, row: any) => {
} }
state.dialog.isShowDialog = true; state.dialog.isShowDialog = true;
getMenuData(); getMenuData();
getFPurchaseOrgListFun()
}; };
// //
const closeDialog = () => { const closeDialog = () => {
@ -134,15 +150,16 @@ const onSubmit = () => {
closeDialog(); closeDialog();
emit('refresh', {...state.ruleForm,dataState:state.dialog.title === '新增用户' ? '0':'1'}); emit('refresh', {...state.ruleForm,dataState:state.dialog.title === '新增用户' ? '0':'1'});
}; };
const BDSupplierListItemChange = (val:any) => { const BDSupplierListItemChange = (val:any) => {
let dbsObj:any = state.BDSupplierList.find(item => item.value === val); let dbsObj:any = state.BDSupplierList.find(item => item.value === val);
console.log(dbsObj)
state.ruleForm.supplierId = dbsObj.value state.ruleForm.supplierId = dbsObj.value
state.ruleForm.supplierName = dbsObj.text state.ruleForm.supplierName = dbsObj.text
} }
const BDFPurchaseOrgListItemChange = (val:any) => {
let dbsObj:any = state.BDFPurchaseOrgList.find(item => item.value === val);
state.ruleForm.fPurchaseOrgId = dbsObj.value
state.ruleForm.fPurchaseOrgName = dbsObj.text
}
// //
const getMenuData = () => { const getMenuData = () => {
listApi().getBDSupplierList({}).then((res:any) => { listApi().getBDSupplierList({}).then((res:any) => {
@ -155,6 +172,18 @@ const getMenuData = () => {
}) })
}; };
//
const getFPurchaseOrgListFun = () => {
listApi().getFPurchaseOrgList({}).then((res:any) => {
if (res.resultCode === 0) {
state.BDFPurchaseOrgList = res.data
}
if (res.resultCode === -1) {
ElMessage.error(res.errorMessage);
}
})
}
// //
defineExpose({ defineExpose({
openDialog, openDialog,

View File

@ -79,6 +79,10 @@ const state = reactive({
{ label: '管理员', value: '1' }, { label: '管理员', value: '1' },
], ],
}, },
{
label: '采购组织名称',
prop: 'fPurchaseOrgName',
},
{ {
label: '账号状态', label: '账号状态',
prop: 'status', prop: 'status',
@ -87,6 +91,7 @@ const state = reactive({
{ label: '正常', value: '1' }, { label: '正常', value: '1' },
], ],
}, },
], ],
}, },
data: [], data: [],
@ -107,8 +112,6 @@ const state = reactive({
const getTableData = (item: any) => { const getTableData = (item: any) => {
let data1 = { ...item }; let data1 = { ...item };
let data2 = { ...item, id: state.itemId }; let data2 = { ...item, id: state.itemId };
console.log(data2)
debugger
listApi() listApi()
.loginSave(state.itemId === '' ? data1 : data2) .loginSave(state.itemId === '' ? data1 : data2)
.then((res: any) => { .then((res: any) => {