初次对接

This commit is contained in:
刘晓鹏 2025-04-01 23:48:13 +08:00
parent db1fdc5e18
commit a72677e1ae
12 changed files with 174 additions and 258 deletions

View File

@ -67,7 +67,7 @@ export default {
Description: "用户描述", Description: "用户描述",
CreatedDate: "创建时间", CreatedDate: "创建时间",
Operation: "操作", Operation: "操作",
PurchaseOrder: "采购订单", PurchaseOrder: "采购管理",
DeliveryNote: "送货" DeliveryNote: "送货管理"
} }
}; };

View File

@ -1,17 +1,17 @@
<template> <template>
<div class="layout-navbars-breadcrumb-user pr15" :style="{ flex: layoutUserFlexNum }"> <div class="layout-navbars-breadcrumb-user pr15" :style="{ flex: layoutUserFlexNum }">
<el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onComponentSizeChange"> <!-- <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onComponentSizeChange">-->
<div class="layout-navbars-breadcrumb-user-icon"> <!-- <div class="layout-navbars-breadcrumb-user-icon">-->
<i class="iconfont icon-ziti" :title="$t('message.user.title0')"></i> <!-- <i class="iconfont icon-ziti" :title="$t('message.user.title0')"></i>-->
</div> <!-- </div>-->
<template #dropdown> <!-- <template #dropdown>-->
<el-dropdown-menu> <!-- <el-dropdown-menu>-->
<el-dropdown-item command="large" :disabled="state.disabledSize === 'large'">{{ $t('message.user.dropdownLarge') }}</el-dropdown-item> <!-- <el-dropdown-item command="large" :disabled="state.disabledSize === 'large'">{{ $t('message.user.dropdownLarge') }}</el-dropdown-item>-->
<el-dropdown-item command="default" :disabled="state.disabledSize === 'default'">{{ $t('message.user.dropdownDefault') }}</el-dropdown-item> <!-- <el-dropdown-item command="default" :disabled="state.disabledSize === 'default'">{{ $t('message.user.dropdownDefault') }}</el-dropdown-item>-->
<el-dropdown-item command="small" :disabled="state.disabledSize === 'small'">{{ $t('message.user.dropdownSmall') }}</el-dropdown-item> <!-- <el-dropdown-item command="small" :disabled="state.disabledSize === 'small'">{{ $t('message.user.dropdownSmall') }}</el-dropdown-item>-->
</el-dropdown-menu> <!-- </el-dropdown-menu>-->
</template> <!-- </template>-->
</el-dropdown> <!-- </el-dropdown>-->
<el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onLanguageChange"> <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onLanguageChange">
<div class="layout-navbars-breadcrumb-user-icon"> <div class="layout-navbars-breadcrumb-user-icon">
<i <i
@ -28,21 +28,21 @@
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
<div class="layout-navbars-breadcrumb-user-icon" @click="onSearchClick"> <!-- <div class="layout-navbars-breadcrumb-user-icon" @click="onSearchClick">-->
<el-icon :title="$t('message.user.title2')"> <!-- <el-icon :title="$t('message.user.title2')">-->
<ele-Search /> <!-- <ele-Search />-->
</el-icon> <!-- </el-icon>-->
</div> <!-- </div>-->
<div class="layout-navbars-breadcrumb-user-icon" @click="onLayoutSetingClick"> <div class="layout-navbars-breadcrumb-user-icon" @click="onLayoutSetingClick">
<i class="icon-skin iconfont" :title="$t('message.user.title3')"></i> <i class="icon-skin iconfont" :title="$t('message.user.title3')"></i>
</div> </div>
<div class="layout-navbars-breadcrumb-user-icon" ref="userNewsBadgeRef" v-click-outside="onUserNewsClick"> <!-- <div class="layout-navbars-breadcrumb-user-icon" ref="userNewsBadgeRef" v-click-outside="onUserNewsClick">-->
<el-badge :is-dot="true"> <!-- <el-badge :is-dot="true">-->
<el-icon :title="$t('message.user.title4')"> <!-- <el-icon :title="$t('message.user.title4')">-->
<ele-Bell /> <!-- <ele-Bell />-->
</el-icon> <!-- </el-icon>-->
</el-badge> <!-- </el-badge>-->
</div> <!-- </div>-->
<el-popover <el-popover
ref="userNewsRef" ref="userNewsRef"
:virtual-ref="userNewsBadgeRef" :virtual-ref="userNewsBadgeRef"
@ -72,11 +72,12 @@
</span> </span>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item command="/home">{{ $t('message.user.dropdown1') }}</el-dropdown-item> <!-- <el-dropdown-item command="/home">{{ $t('message.user.dropdown1') }}</el-dropdown-item>-->
<el-dropdown-item command="wareHouse">{{ $t('message.user.dropdown6') }}</el-dropdown-item> <!-- <el-dropdown-item command="wareHouse">{{ $t('message.user.dropdown6') }}</el-dropdown-item>-->
<el-dropdown-item command="/personal">{{ $t('message.user.dropdown2') }}</el-dropdown-item> <!-- <el-dropdown-item command="/personal">{{ $t('message.user.dropdown2') }}</el-dropdown-item>-->
<el-dropdown-item command="/404">{{ $t('message.user.dropdown3') }}</el-dropdown-item> <!-- <el-dropdown-item command="/404">{{ $t('message.user.dropdown3') }}</el-dropdown-item>-->
<el-dropdown-item command="/401">{{ $t('message.user.dropdown4') }}</el-dropdown-item> <!-- <el-dropdown-item command="/401">{{ $t('message.user.dropdown4') }}</el-dropdown-item>-->
<el-dropdown-item divided command="">修改密码</el-dropdown-item>
<el-dropdown-item divided command="logOut">{{ $t('message.user.dropdown5') }}</el-dropdown-item> <el-dropdown-item divided command="logOut">{{ $t('message.user.dropdown5') }}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>

View File

@ -4,21 +4,21 @@
<template v-for="val in menuLists"> <template v-for="val in menuLists">
<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path"> <el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
<template #title> <template #title>
<SvgIcon :name="val.meta.icon" /> <SvgIcon :name="val.meta.icon" style="color: white"/>
<span>{{ $t(val.meta.title) }}</span> <span style="color: white">{{ $t(val.meta.title) }}</span>
</template> </template>
<SubItem :chil="val.children" /> <SubItem :chil="val.children" />
</el-sub-menu> </el-sub-menu>
<template v-else> <template v-else>
<el-menu-item :index="val.path" :key="val.path"> <el-menu-item :index="val.path" :key="val.path">
<template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)"> <template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
<SvgIcon :name="val.meta.icon" /> <SvgIcon :name="val.meta.icon" style="color: white"/>
{{ $t(val.meta.title) }} <span style="color: white"> {{ $t(val.meta.title) }} </span>
</template> </template>
<template #title v-else> <template #title v-else>
<a class="w100" @click.prevent="onALinkClick(val)"> <a class="w100" @click.prevent="onALinkClick(val)">
<SvgIcon :name="val.meta.icon" /> <SvgIcon :name="val.meta.icon" style="color: white"/>
{{ $t(val.meta.title) }} <span style="color: white"> {{ $t(val.meta.title) }} </span>
</a> </a>
</template> </template>
</el-menu-item> </el-menu-item>

View File

@ -2,21 +2,21 @@
<template v-for="val in chils"> <template v-for="val in chils">
<el-sub-menu :index="val.path" :key="val.path" v-if="val.children && val.children.length > 0"> <el-sub-menu :index="val.path" :key="val.path" v-if="val.children && val.children.length > 0">
<template #title> <template #title>
<SvgIcon :name="val.meta.icon" /> <SvgIcon :name="val.meta.icon" style="color: white"/>
<span>{{ $t(val.meta.title) }}</span> <span style="color: white">{{ $t(val.meta.title) }}</span>
</template> </template>
<sub-item :chil="val.children" /> <sub-item :chil="val.children" />
</el-sub-menu> </el-sub-menu>
<template v-else> <template v-else>
<el-menu-item :index="val.path" :key="val.path"> <el-menu-item :index="val.path" :key="val.path">
<template v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)"> <template v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
<SvgIcon :name="val.meta.icon" /> <SvgIcon :name="val.meta.icon" style="color: white"/>
<span>{{ $t(val.meta.title) }}</span> <span style="color: white">{{ $t(val.meta.title) }}</span>
</template> </template>
<template v-else> <template v-else>
<a class="w100" @click.prevent="onALinkClick(val)"> <a class="w100" @click.prevent="onALinkClick(val)">
<SvgIcon :name="val.meta.icon" /> <SvgIcon :name="val.meta.icon" style="color: white"/>
{{ $t(val.meta.title) }} <span style="color: white">{{ $t(val.meta.title) }}</span>
</a> </a>
</template> </template>
</el-menu-item> </el-menu-item>

View File

@ -52,7 +52,7 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
name: 'mssPurchaseOrderIndex', name: 'mssPurchaseOrderIndex',
component: () => import('/@/views/mssPurchaseOrder/index.vue'), component: () => import('/@/views/mssPurchaseOrder/index.vue'),
meta: { meta: {
title: 'message.list.PurchaseOrder', title: '采购管理列表',
isLink: '', isLink: '',
isHide: false, isHide: false,
isKeepAlive: true, isKeepAlive: true,
@ -67,7 +67,7 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
name: 'purchaseDetails', name: 'purchaseDetails',
component: () => import('/@/views/mssPurchaseOrder/purchaseDetails.vue'), component: () => import('/@/views/mssPurchaseOrder/purchaseDetails.vue'),
meta: { meta: {
title: 'message.list.PurchaseOrder', title: '采购订单明细',
isLink: '', isLink: '',
isHide: true, isHide: true,
isKeepAlive: true, isKeepAlive: true,
@ -82,7 +82,7 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
name: 'materialReceiptNotice', name: 'materialReceiptNotice',
component: () => import('/@/views/materialReceiptNotice/index.vue'), component: () => import('/@/views/materialReceiptNotice/index.vue'),
meta: { meta: {
title: 'message.list.DeliveryNote', title: '送货管理列表',
isLink: '', isLink: '',
isHide: false, isHide: false,
isKeepAlive: true, isKeepAlive: true,

View File

@ -26,7 +26,7 @@ export const useThemeConfig = defineStore('themeConfig', {
* *
*/ */
// 默认顶栏导航背景颜色 // 默认顶栏导航背景颜色
topBar: '#ffffff', topBar: '#4CA5EE',
// 默认顶栏导航字体颜色 // 默认顶栏导航字体颜色
topBarColor: '#606266', topBarColor: '#606266',
// 是否开启顶栏背景颜色渐变 // 是否开启顶栏背景颜色渐变
@ -125,7 +125,7 @@ export const useThemeConfig = defineStore('themeConfig', {
* `initSetLayoutChange(设置布局切换,重置主题样式)` * `initSetLayoutChange(设置布局切换,重置主题样式)`
*/ */
// 布局切换:可选值"<defaults|classic|transverse|columns>",默认 defaults // 布局切换:可选值"<defaults|classic|transverse|columns>",默认 defaults
layout: 'defaults', layout: 'transverse',
/** /**
* *

View File

@ -1,116 +0,0 @@
import dayjs from 'dayjs';
import md5 from 'md5';
import { customRef, ref } from "vue"
/**
*
*/
export function formatTime(
date?: string | number | Date | dayjs.Dayjs | null | undefined,
template?: string | undefined
) {
return dayjs(date).format(template);
}
/**
*
*
*/
export function timeAgo(
date?: string | number | Date | dayjs.Dayjs | null | undefined,
template?: string
) {
const d = dayjs(date).valueOf();
const now = Date.now();
const diff = (now - d) / 1000;
if (diff < 3600) {
return Math.ceil(diff / 60) + '分钟前';
} else if (diff < 3600 * 24) {
return Math.ceil(diff / 3600) + '小时前';
} else {
return formatTime(date, template);
}
}
/**
* md5加密
*/
export function md5Encryption(
message: string | Buffer | number[] | Uint8Array
) {
const KEY = md5('LULU Derivation');
return md5(KEY + md5(message));
}
/**
*
*/
export function typeCheck(param: any) {
return Object.prototype.toString.call(param);
}
/**
* stage
*/
export function mutateState(state: AnyObject, payload: AnyObject) {
if (
typeCheck(state) === '[object Object]' &&
typeCheck(payload) === '[object Object]'
) {
for (const key in payload) {
state[key] = payload[key];
}
} else {
console.error('expected plain Object');
}
}
/**
*
*/
export function debounceRef (data:any, delay = 300){
let timer: NodeJS.Timeout | null = null;
return delay == null
?
ref(data)
:
customRef((track, trigger) => {
return {
get () {
track()
return data
},
set (value) {
if(timer != null){
clearTimeout(timer)
timer = null
}
timer = setTimeout(() => {
data = value;
trigger()
}, delay)
}
}
})
}
//计算两个时间之间的时间差 多少天时分秒
export function timeFn(d1: string,d2: string) {//di作为一个变量传进来
//如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
var dateBegin = new Date(d1.replace(/-/g, "/"));//将-转化为/使用new Date
var dateEnd = new Date(d2.replace(/-/g, "/"));//获取当前时间
var dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
var leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数
var hours=Math.floor(leave1/(3600*1000))//计算出小时数
//计算相差分钟数
var leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数
var minutes=Math.floor(leave2/(60*1000))//计算相差分钟数
//计算相差秒数
var leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数
var seconds=Math.round(leave3/1000)
console.log(" 相差 "+dayDiff+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")
console.log(dateDiff+"时间差的毫秒数",dayDiff+"计算出相差天数",leave1+"计算天数后剩余的毫秒数"
,hours+"计算出小时数",minutes+"计算相差分钟数",seconds+"计算相差秒数");
}

View File

@ -79,7 +79,6 @@ const onLoadFun = (e:any) => {
getList() getList()
} }
const searchChange = (params:any, done:any) => { const searchChange = (params:any, done:any) => {
console.log(params)
done() done()
if(params.fDate?.length){ if(params.fDate?.length){
console.log(11111) console.log(11111)

View File

@ -24,7 +24,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import {reactive, onMounted, computed,defineProps} from 'vue'; import {reactive, onMounted, computed,defineProps} from 'vue';
import { formatTime } from '../../utils/index'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { listApi } from '../../api/list/index' import { listApi } from '../../api/list/index'
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
@ -34,6 +33,7 @@ const props = defineProps({
}) })
// //
JSON.stringify()
const state = reactive({ const state = reactive({
page: { page: {
total: 1000, total: 1000,
@ -42,28 +42,29 @@ const state = reactive({
}, },
option: { option: {
index: false, index: false,
menuWidth: 150, menuWidth: 120,
border: true, border: true,
delBtn: false, delBtn: false,
editBtn: false, editBtn: false,
align: 'center', align: 'center',
searchLabelWidth:100, // searchLabelWidth:100,
searchMenuSpan:6, selection: true,
searchMenuSpan:3,
addBtn:false, addBtn:false,
column: [ column: [
{ label: computed(() => t('message.list.PONumber')), prop: 'fBillNo', width: 200,search: true }, { label: computed(() => t('message.list.PONumber')), prop: 'fBillNo', width: 150,search: true,searchSpan: 3 },
{ label: computed(() => t('message.list.SupplierCode')), prop: 'supplierId', width: 200 }, { label: computed(() => t('message.list.PurchaseDate')), prop: 'fDate', width: 150,search: true,type: 'datetime', searchSpan: 6,searchRange: true,},
{ label: computed(() => t('message.list.SupplierName')), prop: 'supplierName', width: 200 }, { label: '关闭状态', prop: 'hangzhuangtai', width: 150 },
{ label: computed(() => t('message.list.Buyer')), prop: 'purchaser', width: 200 }, { label: '物料编码', prop: 'wuliaobinama', width: 150 },
{ label: computed(() => t('message.list.SettlementMode')), prop: 'paymentMethod', width: 200,search: true }, { label: '物料名称', prop: 'wuliaomingcheng', width: 150 },
{ label: computed(() => t('message.list.Currency')), prop: 'settlementCcurrency', width: 200,search: true }, { label: '采购单位', prop: 'caigoudanwei', width: 150 },
{ label: computed(() => t('message.list.PaymentTerms')), prop: 'paymentTerms', width: 200 }, { label: '采购数量', prop: 'caigoushuliang', width: 150 },
{ label: computed(() => t('message.list.ExchangeRateType')), prop: 'exchangeRateType', width: 200,search: true }, { label: '交货日期', prop: 'jioahuiriqi', width: 150 },
{ label: computed(() => t('message.list.ExchangeRate')), prop: 'exchangeRate', width: 200 }, { label: '业务状态', prop: 'yewuzhuangtai', width: 150,search: true,searchSpan: 3 },
{ label: computed(() => t('message.list.OrderCreater')), prop: 'creater', width: 200 }, { label: '累计收料数量', prop: 'ljslsl', width: 150 },
{ label: computed(() => t('message.list.DocStatus')), prop: 'status', width: 200,search: true,type: 'select'}, { label: '剩余收料数量', prop: 'syslsl', width: 150 },
{ label: computed(() => t('message.list.PurchaseDate')), prop: 'fDate', width: 200,search: true,type: 'datetime', searchSpan: 12,searchRange: true,}, { label: '供应商承诺交期', prop: 'gyscnjq', width: 150 },
{ label: computed(() => t('message.list.Comments')), prop: 'remark', width: 200 }, { label: '供应商承诺最新交期', prop: 'gyscnzxjq', width: 150 },
], ],
}, },
data: [], data: [],
@ -76,17 +77,13 @@ const onLoadFun = (e:any) => {
getList() getList()
} }
const searchChange = (params:any, done:any) => { const searchChange = (params:any, done:any) => {
console.log(params)
done() done()
if(params.fDate?.length){ if(params.fDate?.length){}
console.log(11111)
}
} }
const resetChange = () => { const resetChange = () => {
} }
const toPurchaseDetails = (item:any) => { const toPurchaseDetails = (item:any) => {
console.log(item)
router.push({ router.push({
path: '/purchaseDetails', path: '/purchaseDetails',
query:{ query:{
@ -113,6 +110,9 @@ onMounted(() => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.el-table__cell){
padding: 0 !important;
}
.system-user-container { .system-user-container {
:deep(.el-card__body) { :deep(.el-card__body) {
display: flex; display: flex;

View File

@ -5,14 +5,19 @@
ref="crudRef" ref="crudRef"
:data="state.data" :data="state.data"
:option="state.option" :option="state.option"
@selection-change="selectionChange"> @selection-change="selectionChange"
@search-change="searchChange"
@search-reset="resetChange"
>
<template #menu-left> <template #menu-left>
<div class="menu-left" @click="selectedDataShowFun"> <div style="display: flex;">
<span >已选中 <span style="color: #3edc95; font-size: 18px">{{ state.selectedData.length }}</span> 条数据</span > <div class="menu-left">
<el-icon> <span >已选中 <span style="color: #3edc95; font-size: 18px">{{ state.selectedData.length }}</span> 条数据</span >
<ArrowRight /> </div>
</el-icon> <el-button style="margin-left: 16px" type="primary" @click="selectedDataShowFun" >生成送货单</el-button>
</div> </div>
</template> </template>
</avue-crud> </avue-crud>
</el-card> </el-card>
@ -52,41 +57,52 @@ const state = reactive({
searchMenuSpan: 6, searchMenuSpan: 6,
addBtn: false, addBtn: false,
column: [ column: [
{ label: computed(() => t('message.list.MaterialCode')), prop: 'materialCode', width: 200, search: true }, { label: 'PO号', prop: 'fBillNo', width: 150},
{ label: computed(() => t('message.list.MaterialName')), prop: 'materialName', width: 200, search: true }, { label: computed(() => t('message.list.PurchaseDate')), prop: 'fDate', width: 150,type: 'datetime', searchSpan: 6,searchRange: true,},
{ label: computed(() => t('message.list.Specification')), prop: 'specificationModel', width: 200, search: true }, { label: '关闭状态', prop: 'hangzhuangtai', width: 150 },
{ label: computed(() => t('message.list.PurchaseUnit')), prop: 'FUnitId', width: 200, search: true }, { label: '物料编码', prop: 'wuliaobinama', width: 150 },
{ label: '采购数量', prop: 'qty', width: 200 }, { label: '物料名称', prop: 'wuliaomingcheng', width: 150 },
{ label: '处理中数量', prop: 'processingQty', width: 200 }, { label: '采购单位', prop: 'caigoudanwei', width: 150 },
{ label: '已发货数量', prop: 'sendedQty', width: 200 }, { label: '采购数量', prop: 'caigoushuliang', width: 150 },
{ label: '未发货数量', prop: 'notSendQty', width: 200 }, { label: '交货日期', prop: 'jioahuiriqi', width: 150 },
{ label: '本次发货数量', prop: 'nowSendQty', width: 200 }, { label: '业务状态', prop: 'yewuzhuangtai', width: 150},
{ label: computed(() => t('message.list.UP')), prop: 'unitPrice', width: 200 }, { label: '累计收料数量', prop: 'ljslsl', width: 150 },
{ label:'价税合计(含税金额', prop: 'amount1', width: 200 }, { label: '剩余收料数量', prop: 'syslsl', width: 150 },
{ label: computed(() => t('message.list.TotalAmount')), prop: 'amount2', width: 200 }, { label: '供应商承诺交期', prop: 'gyscnjq', width: 150 },
{ label: computed(() => t('message.list.AccumulatedReceiptQTY')), prop: 'FReceiveQty', width: 200 }, { label: '供应商承诺最新交期', prop: 'gyscnzxjq', width: 150 },
{ label: computed(() => t('message.list.TaxAmount')), prop: 'taxAmount', width: 200 }, // { label: computed(() => t('message.list.MaterialCode')), prop: 'materialCode', width: 200 },
{ // { label: computed(() => t('message.list.MaterialName')), prop: 'materialName', width: 200 },
label: computed(() => t('message.list.CommittedDeliveryDate')), // { label: computed(() => t('message.list.Specification')), prop: 'specificationModel', width: 200 },
prop: 'chengNuoJiaoQi', // { label: computed(() => t('message.list.PurchaseUnit')), prop: 'FUnitId', width: 200 },
width: 200, // { label: '', prop: 'qty', width: 200 },
search: true, // { label: '', prop: 'processingQty', width: 200 },
type: 'datetime', // { label: '', prop: 'sendedQty', width: 200 },
searchSpan: 12, // { label: '', prop: 'notSendQty', width: 200 },
searchRange: true, // { label: '', prop: 'nowSendQty', width: 200 },
searchLabelWidth: 150, // { label: computed(() => t('message.list.UP')), prop: 'unitPrice', width: 200 },
}, // { label:'(', prop: 'amount1', width: 200 },
{ // { label: computed(() => t('message.list.TotalAmount')), prop: 'amount2', width: 200 },
label: computed(() => t('message.list.LatestCommittedDeliveryDate')), // { label: computed(() => t('message.list.AccumulatedReceiptQTY')), prop: 'FReceiveQty', width: 200 },
prop: 'newChengNuoJiaoQi', // { label: computed(() => t('message.list.TaxAmount')), prop: 'taxAmount', width: 200 },
width: 200, // {
search: true, // label: computed(() => t('message.list.CommittedDeliveryDate')),
type: 'datetime', // prop: 'chengNuoJiaoQi',
searchSpan: 12, // width: 200,
searchRange: true, // type: 'datetime',
searchLabelWidth: 150, // searchSpan: 12,
}, // searchRange: true,
{ label: computed(() => t('message.list.Comments2')), prop: 'remark', width: 200 }, // searchLabelWidth: 150,
// },
// {
// label: computed(() => t('message.list.LatestCommittedDeliveryDate')),
// prop: 'newChengNuoJiaoQi',
// width: 200,
// type: 'datetime',
// searchSpan: 12,
// searchRange: true,
// searchLabelWidth: 150,
// },
// { label: computed(() => t('message.list.Comments2')), prop: 'remark', width: 200 },
], ],
}, },
data: [], data: [],
@ -100,9 +116,17 @@ const selectionChange = (list:any) => {
state.selectedData = JSON.parse(JSON.stringify(list)) state.selectedData = JSON.parse(JSON.stringify(list))
}) })
}
const searchChange = (params:any, done:any) => {
done()
getList()
}
const resetChange = () => {
} }
const generateDocumentsFun = () => { const generateDocumentsFun = () => {
state.receiptShow = !state.receiptShow state.selectedDataShow = false
getList()
} }
const selectedDataShowFun = () => { const selectedDataShowFun = () => {
state.selectedDataShow = !state.selectedDataShow state.selectedDataShow = !state.selectedDataShow
@ -148,7 +172,7 @@ const getList = () => {
} }
.menu-left { .menu-left {
width: 340px; //width: 340px;
height: 40px; height: 40px;
background-color: rgba(64, 159, 255, 0.18); background-color: rgba(64, 159, 255, 0.18);
border-radius: 8px; border-radius: 8px;

View File

@ -24,7 +24,7 @@
</template> </template>
</avue-crud> </avue-crud>
<div class="btnList"> <div class="btnList">
<el-button type="primary" @click="batchAddInvoiceOrderFun">生成通知单</el-button> <el-button type="primary" @click="batchAddInvoiceOrderFun">确定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
@ -65,32 +65,38 @@ const state = reactive({
searchMenuSpan: 6, searchMenuSpan: 6,
addBtn: false, addBtn: false,
column: [ column: [
{ label: computed(() => t('message.list.MaterialCode')), prop: 'materialCode', width: 200 }, { label: 'PO号', prop: 'materialCode', },
{ label: computed(() => t('message.list.MaterialName')), prop: 'materialName', width: 200 }, { label: '物料编码', prop: 'materialCode', },
{ label: computed(() => t('message.list.Specification')), prop: 'specificationModel', width: 200 }, { label: '物料名称', prop: 'materialCode', },
{ label: computed(() => t('message.list.PurchaseUnit')), prop: 'FUnitId', width: 200 }, { label: '采购单位', prop: 'materialCode', },
{ label: '采购数量', prop: 'qty', width: 200 }, { label: '本次发货数量', prop: 'materialCode', },
{ label: '处理中数量', prop: 'processingQty', width: 200 }, { label: '采购数量', prop: 'materialCode', },
{ label: '已发货数量', prop: 'sendedQty', width: 200 }, { label: '已发货数量', prop: 'materialCode', },
{ label: '未发货数量', prop: 'notSendQty', width: 200 }, // { label: computed(() => t('message.list.MaterialName')), prop: 'materialName', },
{ label: '本次发货数量', prop: 'nowSendQty', width: 200,fixed:true }, // { label: computed(() => t('message.list.Specification')), prop: 'specificationModel', },
{ label: computed(() => t('message.list.UP')), prop: 'amount1', width: 200 }, // { label: computed(() => t('message.list.PurchaseUnit')), prop: 'FUnitId', },
{ label: computed(() => t('message.list.TotalAmount')), prop: 'amount2', width: 200 }, // { label: '', prop: 'qty', },
{ label: computed(() => t('message.list.AccumulatedReceiptQTY')), prop: 'FReceiveQty', width: 200 }, // { label: '', prop: 'processingQty', },
{ label: computed(() => t('message.list.TaxAmount')), prop: 'taxAmount', width: 200 }, // { label: '', prop: 'sendedQty', },
{ label: computed(() => t('message.list.CommittedDeliveryDate')), prop: 'chengNuoJiaoQi', // { label: '', prop: 'notSendQty', },
width: 200, type: 'datetime', searchSpan: 12, searchRange: true, searchLabelWidth: 150,fixed:true }, // { label: '', prop: 'nowSendQty', ,fixed:true },
{ // { label: computed(() => t('message.list.UP')), prop: 'amount1', },
label: computed(() => t('message.list.LatestCommittedDeliveryDate')), // { label: computed(() => t('message.list.TotalAmount')), prop: 'amount2', },
prop: 'newChengNuoJiaoQi', // { label: computed(() => t('message.list.AccumulatedReceiptQTY')), prop: 'FReceiveQty', },
width: 200, // { label: computed(() => t('message.list.TaxAmount')), prop: 'taxAmount', },
type: 'datetime', // { label: computed(() => t('message.list.CommittedDeliveryDate')), prop: 'chengNuoJiaoQi',
searchSpan: 12, // , type: 'datetime', searchSpan: 12, searchRange: true, searchLabelWidth: 150,fixed:true },
searchRange: true, // {
searchLabelWidth: 150, // label: computed(() => t('message.list.LatestCommittedDeliveryDate')),
fixed:true // prop: 'newChengNuoJiaoQi',
}, // ,
{ label: computed(() => t('message.list.Comments2')), prop: 'remark', width: 200 }, // type: 'datetime',
// searchSpan: 12,
// searchRange: true,
// searchLabelWidth: 150,
// fixed:true
// },
// { label: computed(() => t('message.list.Comments2')), prop: 'remark', },
], ],
}, },
topId: '', topId: '',

View File

@ -12,6 +12,8 @@
<el-table :data="state.tableData.data" v-loading="state.tableData.loading" style="width: 100%"> <el-table :data="state.tableData.data" v-loading="state.tableData.loading" style="width: 100%">
<el-table-column type="index" label="序号" width="60" /> <el-table-column type="index" label="序号" width="60" />
<el-table-column prop="userName" label="账户名称" show-overflow-tooltip></el-table-column> <el-table-column prop="userName" label="账户名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="userName" label="供应商名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="userName" label="供应商ID" show-overflow-tooltip></el-table-column>
<el-table-column prop="userNickname" label="用户昵称" show-overflow-tooltip></el-table-column> <el-table-column prop="userNickname" label="用户昵称" show-overflow-tooltip></el-table-column>
<el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column> <el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column>
<el-table-column prop="status" label="用户状态" show-overflow-tooltip> <el-table-column prop="status" label="用户状态" show-overflow-tooltip>