T*#+&JI|McBg_Q(}vxtcx;j4
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
literal 0
HcmV?d00001
diff --git a/.vs/vue-naive-admin/v16/.suo b/.vs/vue-naive-admin/v16/.suo
new file mode 100644
index 0000000000000000000000000000000000000000..03f5896c6d5d7862486729bc15d39e316a91264e
GIT binary patch
literal 14848
zcmeI3-EtH~6vsOtDEI{`sE8UdA}WdbG9f4!NcfZxWFcr(F5K)Uu&|q?c9Q@P;9FQ_
z=^OY47FBv-S;B>7l~rEgg|A>~SrUK$nd$88?9S}$E@F1wlR7&+Jw0>!bf3@e&Yj!a
z?|$*su3t?64x5eU-s%>!*;n7;E1PY`?BHH?_f}U|^+;ukZD^tqIBypCTQZ&In3?CA
zH#aqvv0^UEJG!0
zGVm|F?4vwRP2T@vg|g^BMEwRZF8?3U*6Q_6%76PApuEfbmcRO0>K+3h2cH0+1T}`+
z!Kc8d!52WiBYPlOcn(x~E7#|}vYxkL{fxka)c?C@iu(Vx1O~AB_aOEEEOguY?+pK%
z?RRR9tqqZ3*7tL2FvSnMr-R;f`}*U#2^_;^JdKX
zog?zNOl{tYf!rqyOa<6a{2~8usa9xGR&|0J&7EM<%nZ4nWiC0f
zUz+lDJmLbq$uI)$xEIWM`jw+r5$O#5owYA>Jpg^hVzSwB>5tJ?dLkI-YctIBW&RZR
zUUFtUWv*~naGON_cGkiFQNHMf|7G-#(uZ04aE)ku!5I}vLOASW{^iSMtK#xMO4}?b
z2=cEyAVm)redF)8to*yT4*uWgQ|hmv5`9+#()1$j*Y8G?U>QX0>={2!)m82#g(
zB+4#G|3y0r;J-upfbxL2^c5HEQ6d2Z`7hGHiOkQ?3p-P8``~Xq<6o+OrSd-kztT13
z!G5g_lR@mC!?$=B1p8O%Ua{2$??I6N%JT2;N$D2{8Grd%mwG(MS==wMvLBcK`$gA&rrh@*
z3w_y38-J-EvfuSWqwmWOH9}u}=>6h17Du^_4UP6cHldJ)#eRo0h*52G8GqA8>ipk{
zTh=_@0>{XGP_cc>Wt?Ekk7X(`bAKP1g=U0h~jsJDohNfY!?!cRKON
zGV-omXqrsFmyCaelJe9Xf6Ja-x=Gy>wbN*eBAP5;)b|r!Z6B)xJ-k1{?*L!v<#(7C
z((n|mMPrtGW4>zvE>dQNu@pByv;a3b=2CN%Z<+ZikX=YVn^R|`v68L=*HqKaNsx;h
z*rdUh;YKl4&f(@x6Iy`a+@!GRveT~I8S{M$@RY#=$q&j3{MZ8gxO>>wm?^EDxz?>2
zeW{f)Yu%KQWLsvIR?s48Qy!i&WEGOWpISir#8=*l2DNUkJWZT6qwUkFlPny}!BNr2
z+WS`G$>p>)=BYf7K>T7rhc9!D(Y&mQT}LT<5VJ!0=O>_>w_U_;Yqdqz`y83pFd5hh
zYUU|VJ8Ob=Phi?vrO_UZ+OD8^v+T`k4K>4^%1JV+oReQ^hQmPg8v*TO{l$VtSO0MT
zTsl3F>>lYG8t5Jz92o3AkW8h!dxr-42ZmE~sdV3rvrJG*QTf02&jkLpfQ#I#QA
z{=e?EyXcbt9hLtj(7wwAqo2iUWSneSk>3(Ei(VFfl@^CM&8bx%?Shwr@^zV(OPI2YL7(EG{f!lAC+uDdqtHK=_FY)71PuU5+1
z`+v>7{};9YaEUzz`Tj|KiLTlQ2||Az`yX1HmfsOX(I3N$xjRugq7bbT%d4G5K8yP>
zhoP_YWjb#r9n?3gfqaI1y&x`qyQ(ZNyGXArX#ZDq?b&BrU+rq?*Rub*;KWo~`PQoU
zl0!oLi@t?wboKlUX!pNsq5p5}|4tA`Uc}=E_nZBD22niKbN)l;f9?23eLLrf&i@4YZ=e6G`TSqa
i=MUD?`M-Al=UU==^S4IxKlvf8Kge^`lYcgvKmG%QgQG_P
literal 0
HcmV?d00001
diff --git a/mock/api/post.js b/mock/api/post.js
index b6c3e54..80ffa1a 100644
--- a/mock/api/post.js
+++ b/mock/api/post.js
@@ -7,6 +7,8 @@ const posts = [
content: '通常配置rem布局会使用js进行处理,比如750的设计稿会这样',
isRecommend: true,
isPublish: true,
+ total_expanse: 100,
+ state: 'approve',
createDate: '2021-11-04T04:03:36.000Z',
updateDate: '2021-11-04T04:03:36.000Z',
},
@@ -17,6 +19,7 @@ const posts = [
description: '总结的Vue2和Vue3的项目风格',
content: '### 1. 命名风格\n\n> 文件夹如果是由多个单词组成,应该始终是横线连接 ',
isRecommend: true,
+ total_expanse: 100,
isPublish: true,
createDate: '2021-10-25T08:57:47.000Z',
updateDate: '2022-02-28T04:02:39.000Z',
@@ -28,6 +31,7 @@ const posts = [
description: '优雅的给图片添加水印',
content: '我之前写过一篇文章记录了一次上传图片的优化史',
isRecommend: true,
+ total_expanse: 100,
isPublish: true,
createDate: '2021-06-24T18:46:19.000Z',
updateDate: '2021-09-23T07:51:22.000Z',
@@ -42,6 +46,7 @@ const posts = [
'> 背景\n\n公司有个vue-cli3移动端web项目发版更新后发现部分用户手机在钉钉内置浏览器打开出现了缓存',
isRecommend: true,
isPublish: true,
+ total_expanse: 100,
createDate: '2021-06-10T18:51:19.000Z',
updateDate: '2021-09-17T09:33:24.000Z',
},
@@ -54,6 +59,7 @@ const posts = [
'## 1. Promise.all\n\n并行执行多个 promise,并等待所有 promise 都准备就绪。再对它们进行处理。',
isRecommend: true,
isPublish: true,
+ total_expanse: 100,
createDate: '2021-02-22T22:37:06.000Z',
updateDate: '2021-09-17T09:33:24.000Z',
},
diff --git a/src/components/table/CrudTable.vue b/src/components/table/CrudTable.vue
index f2a36c0..4d2a39d 100644
--- a/src/components/table/CrudTable.vue
+++ b/src/components/table/CrudTable.vue
@@ -9,6 +9,7 @@
:scroll-x="scrollX"
:columns="columns"
:data="tableData"
+ :summary="getSummary"
:row-key="(row) => row[rowKey]"
:pagination="isPagination ? pagination : false"
@update:checked-row-keys="onChecked"
@@ -46,6 +47,21 @@ const props = defineProps({
type: Array,
required: true,
},
+ //获取总结数据
+ getSummary: {
+ type: Function,
+ required: false,
+ },
+ //总结栏所需列名
+ sumaryCol: {
+ type: String,
+ default: 'total_expanse',
+ },
+ //总结数据
+ summaryRef: {
+ type: Object,
+ default: null,
+ },
/** queryBar中的参数 */
queryItems: {
type: Object,
@@ -53,6 +69,7 @@ const props = defineProps({
return {}
},
},
+
/** 补充参数(可选) */
extraParams: {
type: Object,
@@ -75,11 +92,35 @@ const props = defineProps({
},
})
-const emit = defineEmits(['update:queryItems', 'onChecked', 'onDataChange'])
+const emit = defineEmits(['update:queryItems', 'onChecked', 'onDataChange', 'setSum'])
const loading = ref(false)
const initQuery = { ...props.queryItems }
const tableData = ref([])
-const pagination = reactive({ page: 1, pageSize: 10 })
+const pagination = reactive({ page: 1, pageSize: 1 })
+
+const getSummary = (pageData) => {
+ // console.log(props.summaryRef)
+ // // eslint-disable-next-line vue/no-mutating-props
+ const sum = pageData.reduce(
+ (prevValue, row) => Number(prevValue) + Number(row[props.sumaryCol]),
+ 0
+ )
+ emit('setSum', sum)
+ console.log(props.sumaryCol)
+ return {
+ title: {
+ value: h(
+ 'div',
+ { style: 'top:10%' },
+ 'Total: ' + Number(sum).toFixed(2)
+ // eslint-disable-next-line vue/no-mutating-props
+ // props.summaryRef.value = num
+ // return num
+ ),
+ colSpan: 10,
+ },
+ }
+}
async function handleQuery() {
try {
diff --git a/src/views/demo/table/index.vue b/src/views/demo/table/index.vue
index 897a821..31404f5 100644
--- a/src/views/demo/table/index.vue
+++ b/src/views/demo/table/index.vue
@@ -12,7 +12,19 @@
-
+
+
+
+ {{ i.text }}
+
+
+
(tableData = data)"
>
@@ -104,6 +119,10 @@ const queryItems = ref({})
/** 补充参数(可选) */
const extraParams = ref({})
+//总结数
+const sumRef = ref(0)
+const current_ms = ref('total_expanse')
+
onActivated(() => {
$table.value?.handleSearch()
})
@@ -193,6 +212,41 @@ const columns = [
},
]
+//tabs栏
+const tabsOptions = ref([
+ {
+ name: 'tab1',
+ value: 'tab1',
+ text: 'tab1',
+ },
+ {
+ name: 'tab2',
+ value: 'tab2',
+ text: 'tab2',
+ },
+ {
+ name: 'tab3',
+ value: 'tab3',
+ text: 'tab3',
+ },
+ {
+ name: 'tab4',
+ value: 'tab4',
+ text: 'tab4',
+ },
+])
+//设置总结需要传的函数
+function setSum(val) {
+ sumRef.value = val
+ console.log(sumRef.value)
+}
+
+//根据tabs选择状态搜索
+function selecetChap(val) {
+ queryItems.value.state = val
+ $table.value?.handleSearch()
+}
+
// 选中事件
function onChecked(rowKeys) {
if (rowKeys.length) $message.info(`选中${rowKeys.join(' ')}`)