|
@@ -19,7 +19,7 @@ const initParam = reactive({
|
|
User_tokey: globalStore.GET_User_tokey,
|
|
User_tokey: globalStore.GET_User_tokey,
|
|
page: 1,
|
|
page: 1,
|
|
page_z: 20,
|
|
page_z: 20,
|
|
- T_type:1
|
|
|
|
|
|
+ T_type: 1
|
|
})
|
|
})
|
|
const callbackProductDrawer = (done: () => void) => done()
|
|
const callbackProductDrawer = (done: () => void) => done()
|
|
// 搜索模型
|
|
// 搜索模型
|
|
@@ -50,8 +50,8 @@ const ProductselectionChange = (selection: any[], row: any) => emit('ontableData
|
|
|
|
|
|
|
|
|
|
//函数
|
|
//函数
|
|
-const selectFun = async (val:any)=>{
|
|
|
|
- console.log('选中',val,)
|
|
|
|
|
|
+const selectFun = async (val: any) => {
|
|
|
|
+ console.log('选中', val,)
|
|
}
|
|
}
|
|
const ProductSelectionAllChange = (selection: any[]) => emit('ontableDataAll', selection)
|
|
const ProductSelectionAllChange = (selection: any[]) => emit('ontableDataAll', selection)
|
|
// 获取产品的列表
|
|
// 获取产品的列表
|
|
@@ -92,9 +92,26 @@ const selectTableChange = (row: any) => {
|
|
}
|
|
}
|
|
|
|
|
|
// props
|
|
// props
|
|
-const props = defineProps<{ selectProductData?: any[] }>()
|
|
|
|
|
|
+const props = defineProps<{ selectProductData?: any[]}>()
|
|
const selectProductData = ref(props.selectProductData)
|
|
const selectProductData = ref(props.selectProductData)
|
|
|
|
+
|
|
const emit = defineEmits<{ (event: 'ontableData', value: any): void; (event: 'ontableDataAll', value: any[]): void }>()
|
|
const emit = defineEmits<{ (event: 'ontableData', value: any): void; (event: 'ontableDataAll', value: any[]): void }>()
|
|
|
|
+
|
|
|
|
+interface User {
|
|
|
|
+ T_id: number
|
|
|
|
+ T_name: string
|
|
|
|
+ T_num: number
|
|
|
|
+ count: number
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const toggleSelectionFun = (rows?: User[]) => {
|
|
|
|
+ if (rows) {
|
|
|
|
+ rows.forEach((row) => {
|
|
|
|
+ selectTable.value!.toggleRowSelection(row, undefined)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
defineExpose({
|
|
defineExpose({
|
|
openDrawer,
|
|
openDrawer,
|
|
clearSelection,
|
|
clearSelection,
|
|
@@ -104,7 +121,9 @@ defineExpose({
|
|
initParam,
|
|
initParam,
|
|
tableProductData,
|
|
tableProductData,
|
|
selectTable,
|
|
selectTable,
|
|
|
|
+ toggleSelectionFun
|
|
})
|
|
})
|
|
|
|
+
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<template>
|
|
<template>
|
|
@@ -113,22 +132,12 @@ defineExpose({
|
|
<h4 :id="params.titleId" :class="params.titleClass">选择</h4>
|
|
<h4 :id="params.titleId" :class="params.titleClass">选择</h4>
|
|
</template>
|
|
</template>
|
|
<el-card class="box-card" shadow="never">
|
|
<el-card class="box-card" shadow="never">
|
|
- <el-table
|
|
|
|
- @selection-change="selectFun"
|
|
|
|
- ref="selectTable"
|
|
|
|
- :row-key="getRowKey"
|
|
|
|
- :data="tableProductData"
|
|
|
|
- style="width: 100%; height: 99%"
|
|
|
|
- :header-cell-style="{
|
|
|
|
|
|
+ <el-table @selection-change="selectFun" ref="selectTable" :row-key="getRowKey" :expand-row-keys="[0]"
|
|
|
|
+ :data="tableProductData" style="width: 100%; height: 99%" :header-cell-style="{
|
|
background: '#dedfe0',
|
|
background: '#dedfe0',
|
|
height: '50px'
|
|
height: '50px'
|
|
- }"
|
|
|
|
- v-el-table-infinite-scroll="load"
|
|
|
|
- :infinite-scroll-immediate="false"
|
|
|
|
- infinite-scroll-distance="'50px'"
|
|
|
|
- @select="ProductselectionChange"
|
|
|
|
- @select-all="ProductSelectionAllChange"
|
|
|
|
- >
|
|
|
|
|
|
+ }" v-el-table-infinite-scroll="load" :infinite-scroll-immediate="false" infinite-scroll-distance="'50px'"
|
|
|
|
+ @select="ProductselectionChange" @select-all="ProductSelectionAllChange">
|
|
<template v-for="item in productColumns" :key="item">
|
|
<template v-for="item in productColumns" :key="item">
|
|
<el-table-column v-if="item.type === 'index' || item.type === 'selection'" align="center" v-bind="item" />
|
|
<el-table-column v-if="item.type === 'index' || item.type === 'selection'" align="center" v-bind="item" />
|
|
<el-table-column v-if="!item.ellipsis && item.prop" v-bind="item">
|
|
<el-table-column v-if="!item.ellipsis && item.prop" v-bind="item">
|
|
@@ -168,20 +177,26 @@ defineExpose({
|
|
max-width: 500px;
|
|
max-width: 500px;
|
|
overflow-y: auto;
|
|
overflow-y: auto;
|
|
}
|
|
}
|
|
|
|
+
|
|
.box-card {
|
|
.box-card {
|
|
height: 100%;
|
|
height: 100%;
|
|
|
|
+
|
|
:deep(.el-card__body) {
|
|
:deep(.el-card__body) {
|
|
height: calc(100% - 70px);
|
|
height: calc(100% - 70px);
|
|
}
|
|
}
|
|
|
|
+
|
|
.sn-header {
|
|
.sn-header {
|
|
display: flex;
|
|
display: flex;
|
|
justify-content: end;
|
|
justify-content: end;
|
|
}
|
|
}
|
|
|
|
+
|
|
.input-suffix {
|
|
.input-suffix {
|
|
width: 100%;
|
|
width: 100%;
|
|
|
|
+
|
|
.inline-flex {
|
|
.inline-flex {
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
|
|
+
|
|
.d-flex {
|
|
.d-flex {
|
|
display: flex;
|
|
display: flex;
|
|
}
|
|
}
|