Commit 09b9c2b9 by Sweet Zhang

Merge branch 'test' into sw

parents dbcd9f18 375ff2e5
...@@ -13,7 +13,10 @@ ...@@ -13,7 +13,10 @@
<template #header> <template #header>
<div class="titleBox">{{ dialogTitle }}</div> <div class="titleBox">{{ dialogTitle }}</div>
</template> </template>
<slot class="content"></slot> <div class="content">
<slot></slot>
</div>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<!-- 取消按钮 --> <!-- 取消按钮 -->
...@@ -107,7 +110,9 @@ watch( ...@@ -107,7 +110,9 @@ watch(
align-items: center; align-items: center;
padding: 15px 0; padding: 15px 0;
} }
.content {
padding: 0 15px;
}
.dialog-footer { .dialog-footer {
width: 100%; width: 100%;
display: flex; display: flex;
......
...@@ -42,11 +42,11 @@ ...@@ -42,11 +42,11 @@
{{ btn.label }} {{ btn.label }}
</el-button> </el-button>
</template> </template>
<!-- 左侧插槽 --> <!-- 左侧插槽 -->
<slot name="leftButtons"></slot> <slot name="leftButtons"></slot>
</div> </div>
<div class="operationRight"> <div class="operationRight">
<!-- 右侧按钮 --> <!-- 右侧按钮 -->
<template v-for="btn in rightButtons" :key="btn.key || btn.label"> <template v-for="btn in rightButtons" :key="btn.key || btn.label">
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
{{ btn.label }} {{ btn.label }}
</el-button> </el-button>
</template> </template>
<!-- 右侧插槽 --> <!-- 右侧插槽 -->
<slot name="rightButtons"></slot> <slot name="rightButtons"></slot>
</div> </div>
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<el-col :span="24"> <el-col :span="24">
<slot name="table"></slot> <slot name="table"></slot>
</el-col> </el-col>
<!-- 分页区域 --> <!-- 分页区域 -->
<el-col :span="24" v-if="showPagination"> <el-col :span="24" v-if="showPagination">
<div class="pagination-container"> <div class="pagination-container">
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed, watch, nextTick, onMounted, defineExpose } from 'vue' import { ref, computed, watch, nextTick, onMounted } from 'vue'
// 按钮类型定义 // 按钮类型定义
export interface OperationButton { export interface OperationButton {
...@@ -172,11 +172,11 @@ const emit = defineEmits<{ ...@@ -172,11 +172,11 @@ const emit = defineEmits<{
// 搜索展开/收起 // 搜索展开/收起
'search-toggle': [expanded: boolean] 'search-toggle': [expanded: boolean]
// 默认按钮事件(为方便使用保留) // 默认按钮事件(为方便使用保留)
'add': [] add: []
'import': [] import: []
'export': [] export: []
'reset': [] reset: []
'query': [] query: []
}>() }>()
// 响应式数据 // 响应式数据
...@@ -233,7 +233,7 @@ const defaultButtonConfigs = { ...@@ -233,7 +233,7 @@ const defaultButtonConfigs = {
// 计算最终按钮配置 // 计算最终按钮配置
const computedButtons = computed(() => { const computedButtons = computed(() => {
const result: OperationButton[] = [] const result: OperationButton[] = []
// 1. 添加默认按钮(如果开启) // 1. 添加默认按钮(如果开启)
if (props.showDefaultButtons) { if (props.showDefaultButtons) {
props.visibleDefaultButtons.forEach(key => { props.visibleDefaultButtons.forEach(key => {
...@@ -249,35 +249,33 @@ const computedButtons = computed(() => { ...@@ -249,35 +249,33 @@ const computedButtons = computed(() => {
} }
}) })
} }
// 2. 添加没有匹配到默认按钮的自定义按钮 // 2. 添加没有匹配到默认按钮的自定义按钮
props.operationBtnList.forEach(customBtn => { props.operationBtnList.forEach(customBtn => {
// 如果这个按钮已经有默认配置了,就跳过(已经在上面处理了) // 如果这个按钮已经有默认配置了,就跳过(已经在上面处理了)
const isDefaultBtn = customBtn.key && props.visibleDefaultButtons.includes(customBtn.key as any) const isDefaultBtn = customBtn.key && props.visibleDefaultButtons.includes(customBtn.key as any)
const alreadyAdded = result.some(btn => btn.key === customBtn.key) const alreadyAdded = result.some(btn => btn.key === customBtn.key)
if (!isDefaultBtn && !alreadyAdded) { if (!isDefaultBtn && !alreadyAdded) {
result.push(customBtn) result.push(customBtn)
} }
}) })
return result return result
}) })
// 计算左侧按钮 // 计算左侧按钮
const leftButtons = computed(() => { const leftButtons = computed(() => {
return computedButtons.value.filter(btn => return computedButtons.value.filter(
(btn.direction === 'left' || (!btn.direction && props.showDefaultButtons)) && btn =>
(btn.visible !== false) (btn.direction === 'left' || (!btn.direction && props.showDefaultButtons)) &&
btn.visible !== false
) )
}) })
// 计算右侧按钮 // 计算右侧按钮
const rightButtons = computed(() => { const rightButtons = computed(() => {
return computedButtons.value.filter(btn => return computedButtons.value.filter(btn => btn.direction === 'right' && btn.visible !== false)
btn.direction === 'right' &&
(btn.visible !== false)
)
}) })
// 方法 // 方法
...@@ -289,25 +287,25 @@ const toggleExpand = () => { ...@@ -289,25 +287,25 @@ const toggleExpand = () => {
const checkConditions = () => { const checkConditions = () => {
if (!searchFormRef.value || !props.showSearchForm) return if (!searchFormRef.value || !props.showSearchForm) return
nextTick(() => { nextTick(() => {
const formItems = Array.from( const formItems = Array.from(
searchFormRef.value!.querySelectorAll('.el-form-item, .el-button-group') searchFormRef.value!.querySelectorAll('.el-form-item, .el-button-group')
) )
hasMoreCondition.value = formItems.length > props.defaultVisibleConditions hasMoreCondition.value = formItems.length > props.defaultVisibleConditions
if (!isExpanded.value && hasMoreCondition.value) { if (!isExpanded.value && hasMoreCondition.value) {
formItems.forEach((item, index) => { formItems.forEach((item, index) => {
if (index >= props.defaultVisibleConditions) { if (index >= props.defaultVisibleConditions) {
(item as HTMLElement).style.display = 'none' ;(item as HTMLElement).style.display = 'none'
} else { } else {
(item as HTMLElement).style.display = '' ;(item as HTMLElement).style.display = ''
} }
}) })
} else { } else {
formItems.forEach(item => { formItems.forEach(item => {
(item as HTMLElement).style.display = '' ;(item as HTMLElement).style.display = ''
}) })
} }
}) })
...@@ -317,7 +315,7 @@ const checkConditions = () => { ...@@ -317,7 +315,7 @@ const checkConditions = () => {
const handleButtonClick = async (btn: OperationButton) => { const handleButtonClick = async (btn: OperationButton) => {
// 触发通用按钮点击事件 // 触发通用按钮点击事件
emit('btn-click', btn) emit('btn-click', btn)
// 触发默认按钮的特定事件(保持向后兼容) // 触发默认按钮的特定事件(保持向后兼容)
if (btn.key) { if (btn.key) {
switch (btn.key) { switch (btn.key) {
...@@ -338,7 +336,7 @@ const handleButtonClick = async (btn: OperationButton) => { ...@@ -338,7 +336,7 @@ const handleButtonClick = async (btn: OperationButton) => {
break break
} }
} }
// 执行父组件传入的click函数 // 执行父组件传入的click函数
if (btn.click && typeof btn.click === 'function') { if (btn.click && typeof btn.click === 'function') {
try { try {
...@@ -466,7 +464,7 @@ onMounted(() => { ...@@ -466,7 +464,7 @@ onMounted(() => {
.search-form-container { .search-form-container {
width: 100%; width: 100%;
transition: all 0.3s ease; transition: all 0.3s ease;
&.expanded { &.expanded {
.el-form-item { .el-form-item {
display: flex !important; display: flex !important;
...@@ -481,19 +479,19 @@ onMounted(() => { ...@@ -481,19 +479,19 @@ onMounted(() => {
align-items: stretch; align-items: stretch;
gap: 12px; gap: 12px;
} }
.operationLeft, .operationLeft,
.operationRight { .operationRight {
width: 100%; width: 100%;
justify-content: center; justify-content: center;
} }
.cardStyle { .cardStyle {
margin-bottom: 8px; margin-bottom: 8px;
} }
.pagination-container { .pagination-container {
justify-content: center; justify-content: center;
} }
} }
</style> </style>
\ No newline at end of file
...@@ -286,7 +286,8 @@ import { ...@@ -286,7 +286,8 @@ import {
getCustomerDetail, getCustomerDetail,
editCustomer, editCustomer,
getCustomerList, getCustomerList,
addFna addFna,
calculateFieldValue,
} from '@/api/sign/fna' } from '@/api/sign/fna'
import useDictStore from '@/store/modules/dict' import useDictStore from '@/store/modules/dict'
const dictStore = useDictStore() //获取字典数据 const dictStore = useDictStore() //获取字典数据
......
...@@ -2,8 +2,14 @@ ...@@ -2,8 +2,14 @@
<div class="app-container"> <div class="app-container">
<CommonPage <CommonPage
:operationBtnList="operationBtnList" :operationBtnList="operationBtnList"
:visibleDefaultButtons="visibleDefaultButtons"
:showSearchForm="true" :showSearchForm="true"
:show-pagination="false" :show-pagination="true"
:currentPage="queryParams.pageNo"
:total="total"
:pageSize="queryParams.pageSize"
@current-change="changePageNo"
@size-change="changePageSize"
> >
<!-- 查询条件插槽 --> <!-- 查询条件插槽 -->
<template #searchForm> <template #searchForm>
...@@ -124,7 +130,7 @@ ...@@ -124,7 +130,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div style="width: 100%; display: flex; justify-content: flex-end; margin-bottom: 30px"> <!-- <div style="width: 100%; display: flex; justify-content: flex-end; margin-bottom: 30px">
<pagination <pagination
v-show="total >= 0" v-show="total >= 0"
:total="total" :total="total"
...@@ -133,7 +139,7 @@ ...@@ -133,7 +139,7 @@
@pagination="getList" @pagination="getList"
style="text-align: right" style="text-align: right"
/> />
</div> </div> -->
</template> </template>
</CommonPage> </CommonPage>
<!-- 下一步到预约 --> <!-- 下一步到预约 -->
...@@ -170,38 +176,39 @@ const data = reactive({ ...@@ -170,38 +176,39 @@ const data = reactive({
}) })
const { queryParams, form, rules } = toRefs(data) const { queryParams, form, rules } = toRefs(data)
// 控制要显示的默认按钮
const visibleDefaultButtons = ref(['add', 'query', 'reset']) // 只显示新增和查询两个默认按钮
// 按钮配置
const operationBtnList = ref([ const operationBtnList = ref([
{ {
key: 'add',
label: '新建流程', label: '新建流程',
icon: 'Plus',
type: 'primary',
direction: 'left', direction: 'left',
size: 'large',
click: handleAdd click: handleAdd
}, },
{ {
label: '搜索', key: 'reset',
icon: 'Search',
type: 'primary',
direction: 'right', direction: 'right',
size: 'large', click: resetQuery
click: handleQuery
}, },
{ {
label: '重置', key: 'query',
icon: 'Refresh',
type: 'info',
direction: 'right', direction: 'right',
size: 'large', click: handleQuery
click: resetQuery
} }
]) ])
const changePageNo = val => {
queryParams.value.pageNo = val
getList()
}
const changePageSize = val => {
queryParams.value.pageSize = val
getList()
}
const clearDateRange = () => { const clearDateRange = () => {
dateRange.value = [] dateRange.value = []
} }
const handleCopy = row => { const handleCopy = row => {
// { fnaBizId: row.fnaBizId }
subProcess({ fnaBizId: row.fnaBizId }).then(response => { subProcess({ fnaBizId: row.fnaBizId }).then(response => {
if (response.code === 200) { if (response.code === 200) {
getList() getList()
...@@ -262,7 +269,7 @@ function resetQuery() { ...@@ -262,7 +269,7 @@ function resetQuery() {
proxy.resetForm('queryRef') proxy.resetForm('queryRef')
queryParams.value = { queryParams.value = {
pageNo: 1, pageNo: 1,
pageSize: 8, pageSize: 10,
startTime: '', startTime: '',
endTime: '' endTime: ''
} }
...@@ -283,15 +290,6 @@ function handleDelete(row) { ...@@ -283,15 +290,6 @@ function handleDelete(row) {
.catch(() => {}) .catch(() => {})
} }
/** 重置操作表单 */
function reset() {
form.value = {
pageNo: 1,
pageSize: 8
}
proxy.resetForm('tenantRef')
}
/** 新增按钮操作 */ /** 新增按钮操作 */
function handleAdd() { function handleAdd() {
router.push('/sign/FnaList/edit?type=add') router.push('/sign/FnaList/edit?type=add')
......
...@@ -2,8 +2,14 @@ ...@@ -2,8 +2,14 @@
<div class="app-container"> <div class="app-container">
<CommonPage <CommonPage
:operationBtnList="operationBtnList" :operationBtnList="operationBtnList"
:visibleDefaultButtons="visibleDefaultButtons"
:showSearchForm="true" :showSearchForm="true"
:show-pagination="false" :show-pagination="true"
:currentPage="queryParams.pageNo"
:total="total"
:pageSize="queryParams.pageSize"
@current-change="changePageNo"
@size-change="changePageSize"
> >
<!-- 查询条件插槽 --> <!-- 查询条件插槽 -->
<template #searchForm> <template #searchForm>
...@@ -139,15 +145,6 @@ ...@@ -139,15 +145,6 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div style="width: 100%; display: flex; justify-content: flex-end; margin-bottom: 30px">
<pagination
v-show="total >= 0"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template> </template>
</CommonPage> </CommonPage>
<!-- 下一步到预约 --> <!-- 下一步到预约 -->
...@@ -210,30 +207,34 @@ const dialogVisible = ref(false) ...@@ -210,30 +207,34 @@ const dialogVisible = ref(false)
const appointmentSummeryInfo = ref({}) const appointmentSummeryInfo = ref({})
const tenantList = ref([]) const tenantList = ref([])
const loading = ref(true) const loading = ref(true)
const showSearch = ref(true)
const ids = ref([]) const ids = ref([])
const total = ref(0) const total = ref(0)
const dateRange = ref([]) const dateRange = ref([])
const detailData = ref([]) //行程单-行程信息 const detailData = ref([]) //行程单-行程信息
const exportLoading = ref(false) const exportLoading = ref(false)
// 控制要显示的默认按钮
const visibleDefaultButtons = ref(['query', 'reset']) // 只显示新增和查询两个默认按钮
// 按钮配置
const operationBtnList = ref([ const operationBtnList = ref([
{ {
label: '搜索', key: 'reset',
icon: 'Search',
type: 'primary',
direction: 'right', direction: 'right',
size: 'small', click: resetQuery
click: handleQuery
}, },
{ {
label: '重置', key: 'query',
icon: 'Refresh',
type: 'info',
direction: 'right', direction: 'right',
size: 'small', click: handleQuery
click: resetQuery
} }
]) ])
const changePageNo = val => {
queryParams.value.pageNo = val
getList()
}
const changePageSize = val => {
queryParams.value.pageSize = val
getList()
}
const data = reactive({ const data = reactive({
form: {}, form: {},
queryParams: { queryParams: {
...@@ -530,7 +531,6 @@ getList() ...@@ -530,7 +531,6 @@ getList()
padding: 10px 20px; */ padding: 10px 20px; */
} }
.dialogBox { .dialogBox {
padding: 0 15px;
.dialogTitle { .dialogTitle {
display: flex; display: flex;
align-items: center; align-items: center;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment