From e1b04baf60478e3de9e41e1fc39e1e4346321817 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期五, 29 八月 2025 13:27:31 +0800 Subject: [PATCH] '一些改动' --- src/views/system/dept/utils/hook.tsx | 254 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 200 insertions(+), 54 deletions(-) diff --git a/src/views/system/dept/utils/hook.tsx b/src/views/system/dept/utils/hook.tsx index 1825877..c35af8e 100644 --- a/src/views/system/dept/utils/hook.tsx +++ b/src/views/system/dept/utils/hook.tsx @@ -1,4 +1,4 @@ -import dayjs from "dayjs"; +// import dayjs from "dayjs"; import editForm from "../form.vue"; import { handleTree } from "@/utils/tree"; import { message } from "@/utils/message"; @@ -10,17 +10,31 @@ getOrderStatusList, getRegionList, getDaimaleixingList, + addgetcontact, caigourenAdd, caigourenUpdate, - caigourenDelete + caigourenDelete, + caigourenBatchDelete } from "@/api/item/index"; -import { usePublicHooks } from "../../hooks"; +// import { usePublicHooks } from "../../hooks"; import { addDialog } from "@/components/ReDialog"; -import { reactive, ref, onMounted, h } from "vue"; -import type { FormItemProps } from "../utils/types"; -import { cloneDeep, isAllEmpty, deviceDetection } from "@pureadmin/utils"; +import { type Ref, reactive, ref, onMounted, h, computed } from "vue"; +import type { FormItemProps } from "./types"; +import { cloneDeep, deviceDetection, getKeyList } from "@pureadmin/utils"; +// import { useUserStoreHook } from "@/store/modules/user"; +import type { PaginationProps } from "@pureadmin/table"; +import { useUserStoreHook } from "@/store/modules/user"; -export function useDept() { +import pdfPreview from "../../component/pdfPreview2.vue"; +// const nowRole = computed(() => { +// return useUserStoreHook().nowRole; +// }); +const selectedNum = ref(0); + +export function useDept(tableRef: Ref) { + const nowRole = computed(() => { + return useUserStoreHook().nowRole; + }); const form = reactive({ // 鏂板鏃ユ湡鑼冨洿锛屽彲涓� null锛岀被鍨嬩负鏁扮粍 createDateRange: null, @@ -38,6 +52,7 @@ projectName: null, // 浠g悊鏈烘瀯鍚嶇О锛屽彲涓� null锛岀被鍨嬩负瀛楃涓� dailijigoumingcheng: null, + caigourenmingcheng: null, // 涓爣渚涘簲鍟嗗鍚嶏紝鍙负 null锛岀被鍨嬩负瀛楃涓� zhongbiaoName: null, // 涓撳濮撳悕锛屽彲涓� null锛岀被鍨嬩负瀛楃涓� @@ -88,14 +103,25 @@ const formRef = ref(); const dataList = ref([]); const loading = ref(true); - const { tagStyle } = usePublicHooks(); + // const { tagStyle } = usePublicHooks(); const getOrderStatus = row => { const res = state.orderStatusList.find(item => { - return row.orderStatus == item.status; + return row.orderStatus == item.value; }); return res?.label; }; const columns: TableColumnList = [ + { + label: "鍕鹃�夊垪", // 濡傛灉闇�瑕佽〃鏍煎閫夛紝姝ゅlabel蹇呴』璁剧疆 + type: "selection", + fixed: "left", + reserveSelection: true // 鏁版嵁鍒锋柊鍚庝繚鐣欓�夐」 + }, + { + label: "閲囪喘浜�", + prop: "caigourenmingcheng", + minWidth: 120 + }, { label: "椤圭洰鍚嶇О", prop: "projectName", @@ -103,15 +129,10 @@ align: "left" }, { - label: "浠g悊鏈烘瀯", - prop: "dailijigoumingcheng", - minWidth: 70 - }, - { label: "椤圭洰杩涘害", prop: "orderStatus", minWidth: 70, - cellRenderer: ({ row, props }) => getOrderStatus(row) + cellRenderer: ({ row }) => getOrderStatus(row) }, { label: "鎶ュ悕璐�", @@ -126,7 +147,7 @@ { label: "涓爣渚涘簲鍟�", prop: "zhongbiaoName", - minWidth: 70 + minWidth: 180 }, { label: "璇勫涓撳", @@ -137,15 +158,13 @@ label: "璐ㄧ枒", prop: "zhiyi", minWidth: 100, - cellRenderer: ({ row, props }) => ( - <span>{row.status === 1 ? "鏈�" : "鏃�"}</span> - ) + cellRenderer: ({ row }) => <span>{row.status === 1 ? "鏈�" : "鏃�"}</span> }, { label: "鎶曡瘔", prop: "tousu", minWidth: 100, - cellRenderer: ({ row, props }) => ( + cellRenderer: ({ row }) => ( // <el-tag size={props.size} style={tagStyle.value(row.status)}> <span>{row.status === 1 ? "鏈�" : "鏃�"}</span> // </el-tag> @@ -154,13 +173,115 @@ { label: "鎿嶄綔", fixed: "right", - width: 210, + width: 80, + slot: "operation" + } + ]; + const CGRcolumns: TableColumnList = [ + { + label: "鍕鹃�夊垪", // 濡傛灉闇�瑕佽〃鏍煎閫夛紝姝ゅlabel蹇呴』璁剧疆 + type: "selection", + fixed: "left", + reserveSelection: true // 鏁版嵁鍒锋柊鍚庝繚鐣欓�夐」 + }, + { + label: "浠g悊鏈烘瀯", + prop: "dailijigoumingcheng", + minWidth: 70 + }, + { + label: "椤圭洰鍚嶇О", + prop: "projectName", + width: 180, + align: "left" + }, + { + label: "椤圭洰杩涘害", + prop: "orderStatus", + minWidth: 70, + cellRenderer: ({ row }) => getOrderStatus(row) + }, + { + label: "鎶ュ悕璐�", + prop: "baomingfei", + minWidth: 70 + }, + { + label: "鎶曟爣淇濊瘉閲�", + prop: "toubiaobaozhengjin", + minWidth: 70 + }, + { + label: "涓爣渚涘簲鍟�", + prop: "zhongbiaoName", + minWidth: 180 + }, + { + label: "璇勫涓撳", + prop: "zhuanjiaName", + minWidth: 70 + }, + { + label: "璐ㄧ枒", + prop: "zhiyi", + minWidth: 100, + cellRenderer: ({ row }) => <span>{row.status === 1 ? "鏈�" : "鏃�"}</span> + }, + { + label: "鎶曡瘔", + prop: "tousu", + minWidth: 100, + cellRenderer: ({ row }) => ( + // <el-tag size={props.size} style={tagStyle.value(row.status)}> + <span>{row.status === 1 ? "鏈�" : "鏃�"}</span> + // </el-tag> + ) + }, + { + label: "鎿嶄綔", + fixed: "right", + width: 80, slot: "operation" } ]; + /** 褰揅heckBox閫夋嫨椤瑰彂鐢熷彉鍖栨椂浼氳Е鍙戣浜嬩欢 */ function handleSelectionChange(val) { - console.log("handleSelectionChange", val); + selectedNum.value = val.length; + // 閲嶇疆琛ㄦ牸楂樺害 + tableRef.value.setAdaptive(); + } + /** 鍙栨秷閫夋嫨 */ + function onSelectionCancel() { + selectedNum.value = 0; + // 鐢ㄤ簬澶氶�夎〃鏍硷紝娓呯┖鐢ㄦ埛鐨勯�夋嫨 + tableRef.value.getTableRef().clearSelection(); + } + /** 鎵归噺鍒犻櫎 */ + async function onbatchDel() { + // 杩斿洖褰撳墠閫変腑鐨勮 + const curSelected = tableRef.value.getTableRef().getSelectionRows(); + const data = []; + curSelected.forEach(item => { + data.push({ id: item.id }); + }); + const res = await caigourenBatchDelete(data); + if (res.code == "200") { + // 鎺ヤ笅鏉ユ牴鎹疄闄呬笟鍔★紝閫氳繃閫変腑琛岀殑鏌愰」鏁版嵁锛屾瘮濡備笅闈㈢殑id锛岃皟鐢ㄦ帴鍙h繘琛屾壒閲忓垹闄� + message( + `宸插垹闄ら」鐩悕绉颁负 ${getKeyList(curSelected, "projectName")} 鐨勬暟鎹甡, + { + type: "success" + } + ); + onSearch(); + } else { + message(res.message, { + type: "error" + }); + } + tableRef.value.getTableRef().clearSelection(); + onSearch(); } function handleSizeChange(val: number) { console.log(`${val} items per page`); @@ -170,10 +291,23 @@ console.log(`current page: ${val}`); } - function resetForm(formEl) { - if (!formEl) return; - formEl.resetFields(); - onSearch(); + function resetForm() { + // if (!formEl) return; + // formEl.resetFields(); + // onSearch(); + + addDialog({ + title: `棰勮pdf`, + props: {}, + width: "60%", + draggable: true, + fullscreen: deviceDetection(), + fullscreenIcon: true, + sureBtnLoading: true, + closeOnClickModal: false, + contentRenderer: () => h(pdfPreview, { ref: formRef, formInline: null }) + // jsx 璇硶 锛堟敞鎰忓湪.vue鏂囦欢鍚敤jsx璇硶锛岄渶瑕佸湪script寮�鍚痩ang="tsx"锛� + }); } const checkboxAsRadio = data => { if (data.length > 1) { @@ -193,7 +327,7 @@ pagination.pageSize = result.pageSize; pagination.currentPage = result.page; // if (!isAllEmpty(form.name)) { - // // 鍓嶇鎼滅储閮ㄩ棬鍚嶇О + // // 鍓嶇鎼滅储椤圭洰鍚嶇О // newData = newData.filter(item => item.name.includes(form.name)); // } // if (!isAllEmpty(form.status)) { @@ -204,7 +338,7 @@ } function formatHigherDeptOptions(treeList) { - // 鏍规嵁杩斿洖鏁版嵁鐨剆tatus瀛楁鍊煎垽鏂拷鍔犳槸鍚︾鐢╠isabled瀛楁锛岃繑鍥炲鐞嗗悗鐨勬爲缁撴瀯锛岀敤浜庝笂绾ч儴闂ㄧ骇鑱旈�夋嫨鍣ㄧ殑灞曠ず锛堝疄闄呭紑鍙戜腑涔熸槸濡傛锛屼笉鍙兘鍓嶇闇�瑕佺殑姣忎釜瀛楁鍚庣閮戒細杩斿洖锛岃繖鏃堕渶瑕佸墠绔嚜琛屾牴鎹悗绔繑鍥炵殑鏌愪簺瀛楁鍋氶�昏緫澶勭悊锛� + // 鏍规嵁杩斿洖鏁版嵁鐨剆tatus瀛楁鍊煎垽鏂拷鍔犳槸鍚︾鐢╠isabled瀛楁锛岃繑鍥炲鐞嗗悗鐨勬爲缁撴瀯锛岀敤浜庝笂绾ч」鐩骇鑱旈�夋嫨鍣ㄧ殑灞曠ず锛堝疄闄呭紑鍙戜腑涔熸槸濡傛锛屼笉鍙兘鍓嶇闇�瑕佺殑姣忎釜瀛楁鍚庣閮戒細杩斿洖锛岃繖鏃堕渶瑕佸墠绔嚜琛屾牴鎹悗绔繑鍥炵殑鏌愪簺瀛楁鍋氶�昏緫澶勭悊锛� if (!treeList || !treeList.length) return; const newTreeList = []; for (let i = 0; i < treeList.length; i++) { @@ -215,14 +349,15 @@ return newTreeList; } - function openDialog(title = "鏂板", row?: FormItemProps) { - console.log(row,'-'); - + async function openDialog(title = "鏂板", row?: FormItemProps) { + const { result } = title == "鏂板" ? await addgetcontact() : {}; + addDialog({ title: `${title}椤圭洰`, props: { formInline: { higherDeptOptions: formatHigherDeptOptions(cloneDeep(dataList.value)), + id: row?.id ?? "", projectCode: row?.projectCode ?? "", // 椤圭洰缂栧彿锛堝繀濉級 projectName: row?.projectName ?? "", // 椤圭洰鍚嶇О锛堝繀濉級 hangyepinmu: row?.hangyepinmu ?? null, // 琛屼笟鍝佺洰锛堝彲閫夛級 @@ -232,28 +367,36 @@ baomingfei: row?.baomingfei ?? null, // 鎶ュ悕璐癸紙鍙�夛級 toubiaobaozhengjin: row?.toubiaobaozhengjin ?? null, // 鎶曟爣淇濊瘉閲戯紙鍙�夛級 lianhetitoubiao: row?.lianhetitoubiao ?? null, // 鑱斿悎浣撴姇鏍囷紙鍙�夛級 - kaibiaofangshi: row?.kaibiaofangshi ?? null, // 寮�鏍囨柟寮忥紙鍙�夛級 + kaibiaofangshi: row?.kaibiaofangshi ?? "绾歌川鏍�", // 寮�鏍囨柟寮忥紙鍙�夛級 shifoufenbao: row?.shifoufenbao ?? "false", // 鏄惁鍒嗗寘锛堝彲閫夛級 shifoutuisongxuanchuan: row?.shifoutuisongxuanchuan ?? "true", // 鏄惁鎺ㄩ�佸浼狅紙鍙�夛級 - caigourenmingcheng: row?.caigourenmingcheng ?? null, // 閲囪喘浜哄悕绉帮紙鍙�夛級 + caigourenmingcheng: + row?.caigourenmingcheng ?? result?.caigourenmingcheng, // 閲囪喘浜哄悕绉帮紙鍙�夛級 xingzhengquyu: row?.xingzhengquyu.split(",") ?? [], // 琛屾斂鍖哄煙锛堝彲閫夛級 xingzhengquyuName: row?.xingzhengquyuName ?? null, // 琛屾斂鍖哄煙鍚嶇О锛堝彲閫夛級 - jigoudaima: row?.jigoudaima ?? null, // 鏈烘瀯浠g爜锛堝彲閫夛級 + jigoudaima: row?.jigoudaima ?? result?.jigoudaima, // 鏈烘瀯浠g爜锛堝彲閫夛級 daimaleixing: row?.daimaleixing ?? null, // 浠g爜绫诲瀷锛堝彲閫夛級 - lianxiren: row?.lianxiren ?? null, // 鑱旂郴浜猴紙鍙�夛級 - lianxidianhua: row?.lianxidianhua ?? null, // 鑱旂郴鐢佃瘽锛堝彲閫夛級 - tongxindizhi: row?.tongxindizhi ?? null, // 閫氫俊鍦板潃锛堝彲閫夛級 - dianziyoujian: row?.dianziyoujian ?? null, // 鐢靛瓙閭欢锛堝彲閫夛級 - xiangmujingbanren: row?.xiangmujingbanren ?? null, // 椤圭洰缁忓姙浜猴紙鍙�夛級 + lianxiren: row?.lianxiren ?? result?.lianxiren, // 鑱旂郴浜猴紙鍙�夛級 + lianxidianhua: row?.lianxidianhua ?? result?.lianxidianhua, // 鑱旂郴鐢佃瘽锛堝彲閫夛級 + tongxindizhi: row?.tongxindizhi ?? result?.tongxindizhi, // 閫氫俊鍦板潃锛堝彲閫夛級 + dianziyoujian: row?.dianziyoujian ?? result?.dianziyoujian, // 鐢靛瓙閭欢锛堝彲閫夛級 + xiangmujingbanren: + row?.xiangmujingbanren ?? result?.xiangmujingbanren, // 椤圭洰缁忓姙浜猴紙鍙�夛級 zhiwu: row?.zhiwu ?? null, // 鑱屽姟锛堝彲閫夛級 jingbanrendianhua: row?.jingbanrendianhua ?? null, // 缁忓姙浜虹數璇濓紙鍙�夛級 - dailijigoumingcheng: row?.dailijigoumingcheng ?? null, // 浠g悊鏈烘瀯鍚嶇О锛堝彲閫夛級 - dailiLianxiren: row?.dailiLianxiren ?? null, // 浠g悊鏈烘瀯鑱旂郴浜猴紙鍙�夛級 - dailiLianxidianhua: row?.dailiLianxidianhua ?? null, // 浠g悊鏈烘瀯鑱旂郴鐢佃瘽锛堝彲閫夛級 - dailiDianziyoujian: row?.dailiDianziyoujian ?? null, // 浠g悊鏈烘瀯鐢靛瓙閭欢锛堝彲閫夛級 - dailiTongxindizhi: row?.dailiTongxindizhi ?? null, // 浠g悊鏈烘瀯閫氫俊鍦板潃锛堝彲閫夛級 - dailiXiangmujingli: row?.dailiXiangmujingli ?? null, // 浠g悊鏈烘瀯椤圭洰缁忕悊锛堝彲閫� - dailijingliLianxidianhua: row?.dailijingliLianxidianhua ?? null // 浠g悊鏈烘瀯椤圭洰缁忕悊鑱旂郴鐢佃瘽锛堝彲閫夛級 + dailijigoumingcheng: + row?.dailijigoumingcheng ?? result?.dailijigoumingcheng, // 浠g悊鏈烘瀯鍚嶇О锛堝彲閫夛級 + dailiLianxiren: row?.dailiLianxiren ?? result?.dailiLianxiren, // 浠g悊鏈烘瀯鑱旂郴浜猴紙鍙�夛級 + dailiLianxidianhua: + row?.dailiLianxidianhua ?? result?.dailiLianxidianhua, // 浠g悊鏈烘瀯鑱旂郴鐢佃瘽锛堝彲閫夛級 + dailiDianziyoujian: + row?.dailiDianziyoujian ?? result?.dailiDianziyoujian, // 浠g悊鏈烘瀯鐢靛瓙閭欢锛堝彲閫夛級 + dailiTongxindizhi: + row?.dailiTongxindizhi ?? result?.dailiTongxindizhi, // 浠g悊鏈烘瀯閫氫俊鍦板潃锛堝彲閫夛級 + dailiXiangmujingli: + row?.dailiXiangmujingli ?? result?.dailiXiangmujingli, // 浠g悊鏈烘瀯椤圭洰缁忕悊锛堝彲閫� + dailijingliLianxidianhua: + row?.dailijingliLianxidianhua ?? result?.dailijingliLianxidianhua // 浠g悊鏈烘瀯椤圭洰缁忕悊鑱旂郴鐢佃瘽锛堝彲閫夛級 } }, width: "80%", @@ -267,9 +410,6 @@ const FormRef = formRef.value.getRef(); const curData = cloneDeep(options.props.formInline as FormItemProps); async function chores() { - message(`鎮�${title}浜嗛」鐩悕绉颁负${curData.projectName}鐨勮繖鏉℃暟鎹甡, { - type: "success" - }); // curData.dingbiaoguize = curData.dingbiaoguize.join(""); curData.xingzhengquyu = curData.xingzhengquyu.join(","); let res; @@ -281,6 +421,9 @@ if (res.code == "200") { done(); // 鍏抽棴寮规 onSearch(); // 鍒锋柊琛ㄦ牸鏁版嵁 + message(`鎮�${title}浜嗛」鐩悕绉颁负${curData.projectName}鐨勮繖鏉℃暟鎹甡, { + type: "success" + }); } else { closeLoading(); message(res.message, { @@ -301,8 +444,6 @@ } else { closeLoading(); const fail = []; - console.log(obj); - for (const key in obj) { fail.push(obj[key][0].message); } @@ -344,19 +485,24 @@ state, loading, columns, + CGRcolumns, dataList, + selectedNum, /** 鎼滅储 */ onSearch, /** 閲嶇疆 */ resetForm, - /** 鏂板銆佷慨鏀归儴闂� */ + /** 鏂板銆佷慨鏀归」鐩� */ openDialog, - /** 鍒犻櫎閮ㄩ棬 */ + /** 鍒犻櫎椤圭洰 */ handleDelete, handleSelectionChange, handleSizeChange, handleCurrentChange, pagination, - checkboxAsRadio + checkboxAsRadio, + onSelectionCancel, + onbatchDel, + nowRole }; } -- Gitblit v1.9.1