diff --git a/public/img/kflogo.png b/public/img/kflogo.png new file mode 100644 index 00000000..e5b35c3c Binary files /dev/null and b/public/img/kflogo.png differ diff --git a/public/img/kflogo2.png b/public/img/kflogo2.png new file mode 100644 index 00000000..1d9afdde Binary files /dev/null and b/public/img/kflogo2.png differ diff --git a/public/img/logo3.png b/public/img/logo3.png new file mode 100644 index 00000000..ed372be5 Binary files /dev/null and b/public/img/logo3.png differ diff --git a/src/option/storagecost/OrderTotalTransferDetails.js b/src/option/storagecost/OrderTotalTransferDetails.js new file mode 100644 index 00000000..88d213d7 --- /dev/null +++ b/src/option/storagecost/OrderTotalTransferDetails.js @@ -0,0 +1,233 @@ +export const columnList = [ + { + prop: 'checkbox', + label: '复选框', + type: 0, + width: 55, + fixed: true, + }, + { + prop: 'xh', + label: '序号', + type: 12, + values: '', + width: 55, + fixed: true, + }, + { + prop: 'a1', + label: '中转仓', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a2', + label: '订单编号', + type: 2, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a3', + label: '运单号', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a4', + label: '到站仓', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a5', + label: '发站仓', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a6', + label: '发货单位', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a7', + label: '收货单位', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a8', + label: '运单类型', + type: 3, + values: '', + width: '150', + checkarr: [{ + label: '商配', + value: '商配', + },{ + label: '市配', + value: '市配', + }, + ], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a9', + label: '服务类型', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a11', + label: '开单时间', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a12', + label: '签收时间', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a13', + label: '总件数', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a14', + label: '中转入库总件数', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a15', + label: '中转入库总收入', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a16', + label: '中转出库总件数', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a17', + label: '中转出库总收入', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a17', + label: '中转作业总收入', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + { + prop: 'a17', + label: '中转结算时间', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, + // { + // prop: 'createUserName', + // label: '操作', + // type: 6, + // values: '', + // width: '200', + // checkarr: [], + // fixed: 'right', + // sortable: false, + // }, + ]; + \ No newline at end of file diff --git a/src/page/login/aiqa.vue b/src/page/login/aiqa.vue index 9cd1899a..8331e00d 100644 --- a/src/page/login/aiqa.vue +++ b/src/page/login/aiqa.vue @@ -1,7 +1,9 @@ <template> <div class="page-content"> <div class="header"> - <div class="logo"><img :src="logo" />货无忧AI智能问答</div> + <div class="logo"><img :src="logo" /> + <span>货无忧AI智能问答</span> + </div> <div class="icon-box"> <el-icon @click="close"><CloseBold /></el-icon> </div> @@ -9,6 +11,8 @@ <div class="content"> <div class="left"> <div class="content-box" ref="chatContainer"> + + <div class="content-time">{{time}}</div> <template v-for="(item, index) in Data.ChathistoryList" :key="index"> <div :class="{ @@ -17,7 +21,8 @@ }" > <div class="icon"> - <el-icon><Avatar /></el-icon> + <el-icon v-if=" item.state === 'user'"><Avatar /></el-icon> + <img v-else :src="logotx" /> </div> <div> <div @@ -26,8 +31,8 @@ 'content-header-user': item.state === 'user', }" > - <span>User:{{ item.name }}</span> - <span>Time:{{ item.time }}</span> + <span>{{ item.name }}</span> + <!-- <span>{{ item.time }}</span> --> </div> <div class="content-list"> <p :ref="el => (chatContents[index] = el)"> @@ -90,11 +95,12 @@ </template> <script setup> -import { defineProps, defineEmits, ref, nextTick, onMounted } from 'vue'; +import { defineProps, defineEmits, ref, nextTick, onMounted, computed } from 'vue'; import { ElMessage } from 'element-plus'; import Qrxcx from '../../../public/img/Qrxcx.png'; //小程序二维码 import Qrewm from '../../../public/img/Qrewm.png'; //APP二维码 -import logo from '../../../public/img/p-logo.png'; //logo +import logo from '../../../public/img/kflogo.png'; //logo +import logotx from '../../../public/img/logo3.png'; //logo const emit = defineEmits(['request-data']); const isFirstMessage = ref(true); const chatContainer = ref(null); @@ -188,8 +194,15 @@ const setCurrentTime = () => { const year = now.getFullYear(); const month = (now.getMonth() + 1).toString().padStart(2, '0'); const day = now.getDate().toString().padStart(2, '0'); - return `${year}年${month}月${day}日`; + const hours = now.getHours().toString().padStart(2, '0'); + const minutes = now.getMinutes().toString().padStart(2, '0'); + const seconds = now.getSeconds().toString().padStart(2, '0'); + return `${year}年${month}月${day}日 ${hours}:${minutes}:${seconds}`; }; + +const time = computed(()=>{ + return setCurrentTime() +}) // 用户输入逻辑 const inputData = value => { Data.value.input = value; @@ -327,16 +340,16 @@ AiData(); //初始化AI机器人 cursor: pointer; } .id1 { - border: 1px solid red; - background-color: red; + border: 1px solid #f45c45; + background-color: #f45c45; } .id2 { - border: 1px solid #2196f3; - background-color: #2196f3; + border: 1px solid #ed9c43; + background-color: #ed9c43; } .id3 { - border: 1px solid #8bc34a; - background-color: #8bc34a; + border: 1px solid #ffd35d; + background-color: #ffd35d; } } } @@ -359,15 +372,18 @@ AiData(); //初始化AI机器人 align-items: center; justify-content: space-between; background-color: #172e60; - line-height: 68px; + line-height: 40px; + font-size: 16px; padding: 0 24px; .logo { display: flex; align-items: center; - + span{ + margin-left: 10px; + } img { - width: 100px; - height: 100px; + width: 30px; + height: 30px; } } .icon-box { @@ -390,7 +406,6 @@ AiData(); //初始化AI机器人 display: flex; justify-content: space-between; overflow-y: hidden; - box-shadow: 0px 2px 4px #9e9e9e; .left { width: 66%; border-right: 1px solid #d3832a; @@ -398,11 +413,10 @@ AiData(); //初始化AI机器人 flex-direction: column; .content-box { - height: 85%; - background-color: #fbfbfd; + height: 70%; + background-color: #f5f5f6; padding: 10px; overflow-y: scroll; - box-shadow: inset 3px -1px 4px #c9c0c0; .chat-history, .chat-history-user { margin-bottom: 2%; @@ -411,10 +425,10 @@ AiData(); //初始化AI机器人 height: fit-content; .icon { - min-width: 40px; - min-height: 40px; - max-width: 40px; - max-height: 40px; + min-width: 54px; + min-height: 54px; + max-width: 54px; + max-height: 54px; border-radius: 50%; border: 1px solid #d3832a; margin-right: 20px; @@ -423,6 +437,10 @@ AiData(); //初始化AI机器人 justify-content: center; color: #d3832a; font-size: 3em; + img{ + width: 100%; + height: 100%; + } .el-icon { font-size: 22px; } @@ -441,9 +459,9 @@ AiData(); //初始化AI机器人 border: 1px solid #9e9e9e; padding: 0 4px; border-radius: 4px; - font-size: 14px; p { - text-indent: 24px; + font-size: 13px; + // text-indent: 24px; } } } @@ -482,6 +500,9 @@ AiData(); //初始化AI机器人 .el-input__wrapper { box-shadow: none; } + .el-input__inner{ + font-size: 12px; + } .el-button { position: absolute; right: 10px; @@ -510,4 +531,9 @@ AiData(); //初始化AI机器人 } } } +.content-time{ + text-align: center; + color: #9a9a9a; + font-size: 12px; +} </style> diff --git a/src/views/cost/storagecost/OrderTotalTransferDetails.vue b/src/views/cost/storagecost/OrderTotalTransferDetails.vue index baac76e0..27d9b8bd 100644 --- a/src/views/cost/storagecost/OrderTotalTransferDetails.vue +++ b/src/views/cost/storagecost/OrderTotalTransferDetails.vue @@ -1,11 +1,303 @@ <template> - 订单总中转作业明细 -</template> + <basic-container> + <!-- 首页表格 --> + <div class="avue-crud"> + <!-- 搜索模块 --> + <el-row v-if="search"> + <!-- 查询模块 --> + <el-form :inline="true" :model="query" class="el-fr-d"> + <!-- 查询按钮 --> + <el-form-item class="el-btn"> + <el-button type="primary" icon="el-icon-search" @click="searchChange">搜 索</el-button> + <el-button icon="el-icon-delete" @click="searchReset()">清 空</el-button> + </el-form-item> + </el-form> + </el-row> + + <!-- 控件模块 --> + <el-row> + <div class="avue-crud__header"> + <!-- 头部左侧按钮模块 --> + <div class="avue-crud__left"> + <el-button type="primary" @click="AddInfo"><el-icon><Download /></el-icon>导出</el-button> + </div> + <!-- 头部右侧按钮模块 --> + <div class="avue-crud__right"> + <el-button icon="el-icon-refresh" @click="searchChangeS" circle></el-button> + <el-button icon="Operation" @click="showdrawer(true)" circle></el-button> + <el-button icon="Search" @click="searchHide" circle></el-button> + </div> + </div> + </el-row> + + <!-- 首页表格 --> + <el-row> + <!-- 列表模块 --> + <tablecmt + class="tableNode" + :columnList="details.columnList" + :tableData="data" + :loading="loadingObj.list" + @inputTxt="inputsc" + @timeCheck="timesc" + @btnCheck="btnsc" + @selectCheck="selectsc" + @selection="selectionChange" + > + <template #default="slotProps"> + <template v-if="slotProps.scope.column.label === '操作'"> + <div class="ElBtnClass"> + <el-button @click="view(slotProps.scope)">查看</el-button> + </div> + </template> + </template> + </tablecmt> + </el-row> + + <!-- 分页模块 --> + <el-row class="el-fy"> + <div class="avue-crud__pagination flex-c-sb" style="width: 100%"> + <div></div> + <el-pagination + align="right" + background + @size-change="sizeChange" + @current-change="currentChange" + :current-page="page.currentPage" + :page-sizes="[30, 50, 80, 120]" + :page-size="page.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total" + > + </el-pagination> + </div> + </el-row> + </div> + </basic-container> + <!-- 列表配置显示 --> + <edittablehead + @setcolum="setnewcolum" + @closce="showdrawer" + :drawerShow="drawerShow" + :columnList="details.columnList" + v-model="details.columnList" + ></edittablehead> + </template> + + <script setup> + import { ref, reactive, toRefs, computed, onMounted, nextTick, watch } from 'vue'; + import { columnList } from '@/option/storagecost/OrderTotalTransferDetails.js'; + import { getDictionaryBiz } from '@/api/system/dict'; //字典 + import { processRowProperty,setNodeHeight } from '@/utils/util'; + import functions from '@/utils/functions.js'; + import { ElMessageBox,ElMessage } from 'element-plus'; + import { downloadXls } from '@/utils/util'; + import { useStore } from 'vuex'; + import dayjs from 'dayjs'; + const $router = useRouter();//跳转 + const $useStore = useStore();//权限 + const $route = useRoute();//获取地址栏参数 + const details = reactive({ + /** 是否开启搜索 */ + search: false, + /** 表格搜索条件 */ + query: {}, + /** 时间快捷选择设置 */ + shortcuts: [ + { + text: '最近一周', + value: () => { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + return [start, end]; + }, + }, + { + text: '最近一个月', + value: () => { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + return [start, end]; + }, + }, + { + text: '最近三个月', + value: () => { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + return [start, end]; + }, + }, + ], + /** 时间选择器数据 */ + stockupDate: [], + /** 列表 */ + columnList, + + /** 列表数据 */ + data: [{}], + /** 页面loading */ + loadingObj: { + /** 列表加载loading */ + list: false, + packageListLoading: false, + }, + /** 列表复选框选中的数据 */ + selectionList: [], + /** 是否显示设置表格 */ + drawerShow: false, + /** 分页参数 */ + page: { + currentPage: 1, + pageSize: 50, + total: 0, + }, + + /** 弹出层显示 */ + popUpShow: { + /** 包件明细 */ + packageOrderListlVisited: false, + /** 二维码 */ + QRCodeVisible: false, + /** 修改客户信息 */ + editClientInfoVisible: false, + }, + /** 列表Dom节点 */ + listNode: '', + form: {}, + /** 全屏 */ + fullscreenObj: { + /** 包明细 */ + packageOrderListlVisited: false, + }, + }); + + const { + search, + query, + shortcuts, + stockupDate, + data, + loadingObj, + selectionList, + drawerShow, + page, + trickleLoadingPage, + zeroAdditionalRecordingInfo, + popUpShow, + recorddata, + } = toRefs(details); -<script setup> + /** 展开列表控件 */ + const showdrawer = _flag => { + details.drawerShow = _flag; + }; + /** 表格表头输入框搜索 */ + const inputsc = (index, row) => { + details.query[row.prop] = index; + processRowProperty(index, row, details); + test(details.query); + + }; + // 实例函数 + const test=(val)=>{ + + } + /** 表格表头时间选择 */ + const timesc = (index, row) => { + console.log(index, row); + if (!!index) { + index = dayjs(index).format('YYYY-MM-DD'); + } + details.query[row.prop] = index; + if (!index) { + delete details.query[row.prop]; + } + }; + + /** 表格表头输入框搜索 */ + const btnsc = val => { + console.log(val); + }; + /** 表格表头下拉框选择 */ + const selectsc = (index, row) => { + processRowProperty(index, row, details); + }; + /** 表格表头复选框选择 */ + const selectionChange = list => { + console.log(list); + details.selectionList = list; + }; + // 网页顶部搜索按钮 + const searchChange = () => { + details.search = false; //关闭搜索 + }; + // 每页多少条 + const sizeChange = val => { + page.value.pageSize = val; + }; + /** 页码改变执行的回调 */ + const currentChange = val => { + page.value.currentPage = val; + }; + // 刷新按钮 + const searchChangeS = () => { + details.search = false; //关闭搜索 + }; + // 顶部搜索 + const searchHide = () => { + console.log(details); + details.search = !details.search; + const _node = document.querySelector('.tableNode'); + setNodeHeight(_node, '', true); + }; + // 字典公共函数 + function updateDictionary(targetArray, dictionaryType) { + getDictionaryBiz(dictionaryType).then(res => { + console.log(res, '字典'); + res.data.data.forEach(item => { + targetArray.push({ + value: item.dictKey, + label: item.dictValue, + }); + }); + }); + } +// 页面初始化 +const onLoad=()=>{ -</script> +} -<style scoped lang='scss'> - -</style> \ No newline at end of file + // 页面初始化方法 + </script> + + <style scoped lang="scss"> + .ElBtnClass button { + border: none; + padding: 0; + background-color: transparent; + } + :deep(.el-card) { + height: 100%; + } + :deep(.el-card__body) { + height: 100%; + display: flex; + flex-direction: column; + } + .el-fy { + flex: 1; + display: flex; + align-items: flex-end; + margin-bottom: 10px; + } + .avue-crud { + height: 100%; + display: flex; + flex-direction: column; + } + </style> + \ No newline at end of file diff --git a/src/views/cost/storagecost/Warehouseinformationconfiguration.vue b/src/views/cost/storagecost/Warehouseinformationconfiguration.vue index 17de6010..6ea0ba90 100644 --- a/src/views/cost/storagecost/Warehouseinformationconfiguration.vue +++ b/src/views/cost/storagecost/Warehouseinformationconfiguration.vue @@ -19,7 +19,7 @@ <div class="avue-crud__header"> <!-- 头部左侧按钮模块 --> <div class="avue-crud__left"> - <el-button type="primary" @click="AddInfo"><el-icon><Plus /></el-icon>导入</el-button> + <el-button type="primary" @click="AddInfo"><el-icon><Upload /></el-icon>导入</el-button> <el-button type="primary" @click="AddInfo"><el-icon><Download /></el-icon>导出</el-button> </div> <!-- 头部右侧按钮模块 --> diff --git a/src/views/distribution/deliverylist/distributionDeliveryListedt.vue b/src/views/distribution/deliverylist/distributionDeliveryListedt.vue index fe89ea07..4e8c9cb7 100644 --- a/src/views/distribution/deliverylist/distributionDeliveryListedt.vue +++ b/src/views/distribution/deliverylist/distributionDeliveryListedt.vue @@ -2052,6 +2052,17 @@ export default { sortable: true, head: false, }, + { + prop: 'signingType', + label: '签收方式', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, { prop: 'signingUser', label: '签收人', @@ -3038,6 +3049,16 @@ export default { fixed: false, sortable: true, }, + { + label: '签收方式', + prop: 'signingType', + type: 1, + values: '', + width: '130', + checkarr: [], + fixed: false, + sortable: true, + }, { label: '签收人', prop: 'signingUser', @@ -3955,11 +3976,6 @@ if($useStore.getters && $useStore.getters.permission){ }); }, RejectFn(row){ - ElMessage({ - message: '功能维护中', - type: 'warning', - }); - console.log(row); this.RejectRow=row; this.dialogViReject=true; @@ -3977,7 +3993,6 @@ if($useStore.getters && $useStore.getters.permission){ console.log(res,'驳回成功返回值'); this.viewAbnormalLoading(this.toexamineID); //驳回完成更新数据 } - }) }, //审批异常装车包件