|
|
@@ -17,42 +17,41 @@
|
|
|
|
|
|
<!-- 表格 -->
|
|
|
<ArtTable
|
|
|
- :loading="loading"
|
|
|
- :data="data"
|
|
|
- :columns="columns"
|
|
|
- :pagination="pagination"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- @pagination:size-change="handleSizeChange"
|
|
|
- @pagination:current-change="handleCurrentChange"
|
|
|
+ :loading="loading"
|
|
|
+ :data="data"
|
|
|
+ :columns="columns"
|
|
|
+ :pagination="pagination"
|
|
|
+ @pagination:size-change="handleSizeChange"
|
|
|
+ @pagination:current-change="handleCurrentChange"
|
|
|
>
|
|
|
<template #person_num="scope">
|
|
|
<ElInput
|
|
|
- v-model="scope.row.person_num"
|
|
|
- placeholder="scope.row.person_num"
|
|
|
- @blur="doUpdateAttr(scope)"
|
|
|
+ v-model="scope.row.person_num"
|
|
|
+ placeholder="scope.row.person_num"
|
|
|
+ @blur="doUpdateAttr(scope)"
|
|
|
/>
|
|
|
</template>
|
|
|
|
|
|
<template #is_eleme_in_school="scope">
|
|
|
<ElSwitch
|
|
|
- v-model="scope.row.is_eleme_in_school"
|
|
|
- @change="doUpdateAttr(scope)"
|
|
|
- :active-value="1"
|
|
|
- :inactive-value="0"
|
|
|
- :before-change="() => isMounted"
|
|
|
+ v-model="scope.row.is_eleme_in_school"
|
|
|
+ @change="doUpdateAttr(scope)"
|
|
|
+ :active-value="1"
|
|
|
+ :inactive-value="0"
|
|
|
+ :before-change="() => isMounted"
|
|
|
/>
|
|
|
</template>
|
|
|
|
|
|
<template #is_eleme_out_school="scope">
|
|
|
- <ElSwitch v-model="scope.row.is_eleme_out_school" @change="doUpdateAttr(scope)" />
|
|
|
+ <ElSwitch v-model="scope.row.is_eleme_out_school" @change="doUpdateAttr(scope)"/>
|
|
|
</template>
|
|
|
|
|
|
<template #is_meituan_in_school="scope">
|
|
|
- <ElSwitch v-model="scope.row.is_meituan_in_school" @change="doUpdateAttr(scope)" />
|
|
|
+ <ElSwitch v-model="scope.row.is_meituan_in_school" @change="doUpdateAttr(scope)"/>
|
|
|
</template>
|
|
|
|
|
|
<template #is_meituan_out_school="scope">
|
|
|
- <ElSwitch v-model="scope.row.is_meituan_out_school" @change="doUpdateAttr(scope)" />
|
|
|
+ <ElSwitch v-model="scope.row.is_meituan_out_school" @change="doUpdateAttr(scope)"/>
|
|
|
</template>
|
|
|
</ArtTable>
|
|
|
|
|
|
@@ -65,294 +64,382 @@
|
|
|
<!-- @submit="handleDialogSubmit"-->
|
|
|
<!-- />-->
|
|
|
</ElCard>
|
|
|
+
|
|
|
+ <el-drawer
|
|
|
+ v-model="drawer"
|
|
|
+ :title="currentRow.name"
|
|
|
+ direction="rtl"
|
|
|
+ size="60%"
|
|
|
+ >
|
|
|
+ <ElRow>
|
|
|
+ <ElCol :sm="12">
|
|
|
+ <ElRow class="detail">
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>在校人数:</label> <span>{{ currentRow.person_num }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>地区:</label> <span>{{
|
|
|
+ [currentRow.province, currentRow.city, currentRow.area].join(' / ')
|
|
|
+ }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span=24>
|
|
|
+ <label>详细地址:</label> <span>{{ currentRow.address }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>负责人:</label> <span>{{ currentRow.bind_user_id }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>是否有饿了么校内站:</label> <span>{{ currentRow.is_eleme_in_school ? '有' : '无' }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>是否有饿了么校外站:</label> <span>{{ currentRow.is_eleme_out_school ? '有' : '无' }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>是否有美团校内站:</label> <span>{{ currentRow.is_meituan_in_school ? '有' : '无' }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>是否有美团校外站:</label> <span>{{ currentRow.is_meituan_out_school ? '有' : '无' }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>是否能上楼:</label> <span>{{ currentRow.can_go_upstairs ? '不能' : '能' }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>是否合作:</label> <span>{{ currentRow.is_cooperate ? '已合作' : '未合作' }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :sm="12">
|
|
|
+ <label>是否允许骑电动车:</label> <span>{{ currentRow.can_ride ? '不能' : '能' }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span=24>
|
|
|
+ <label>宿舍分布情况:</label> <span>{{ currentRow.dormitory_distribution }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span=24>
|
|
|
+ <label>校门口取餐点离宿舍情况:</label> <span>{{ currentRow.qucan_station_distribution }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span=24>
|
|
|
+ <label>校外商圈情况:</label> <span>{{ currentRow.out_business_description }}</span>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span=24>
|
|
|
+ <label>备注:</label> <span>{{ currentRow.memo }}</span>
|
|
|
+ </el-col>
|
|
|
+ </ElRow>
|
|
|
+ </ElCol>
|
|
|
+ <ElCol :sm="12">
|
|
|
+ <ElImage src="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"/>
|
|
|
+ </ElCol>
|
|
|
+ </ElRow>
|
|
|
+ </el-drawer>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
- import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue'
|
|
|
- import { ACCOUNT_TABLE_DATA } from '@/mock/temp/formData'
|
|
|
- import { ElMessageBox, ElMessage, ElTag, ElImage, ElButton, ElInput } from 'element-plus'
|
|
|
- import { useTable } from '@/composables/useTable'
|
|
|
- import { schoolApi } from '@/api/schoolApi'
|
|
|
- import UserSearch from './user-search.vue'
|
|
|
- import { useUserStore } from '@/store/modules/user'
|
|
|
- import { useWorktabStore } from '@/store/modules/worktab'
|
|
|
- import SchoolListItem = Api.School.SchoolListItem
|
|
|
- import { render } from 'vue'
|
|
|
- import EmojiText from '@utils/ui/emojo'
|
|
|
- import { router } from '@/router'
|
|
|
- import { RoutesAlias } from '@/router/routesAlias'
|
|
|
-
|
|
|
- defineOptions({ name: 'User' })
|
|
|
-
|
|
|
- const worktabStore = useWorktabStore()
|
|
|
-
|
|
|
- type UserListItem = Api.User.UserListItem
|
|
|
- const { list } = schoolApi
|
|
|
-
|
|
|
- // 弹窗相关
|
|
|
- const dialogType = ref<Form.DialogType>('add')
|
|
|
- const dialogVisible = ref(false)
|
|
|
- const currentUserData = ref<Partial<UserListItem>>({})
|
|
|
-
|
|
|
- // 选中行
|
|
|
- const selectedRows = ref<UserListItem[]>([])
|
|
|
-
|
|
|
- // 搜索表单
|
|
|
- const searchForm = ref({
|
|
|
- name: '',
|
|
|
- is_cooperate: -1,
|
|
|
- address: []
|
|
|
- })
|
|
|
+import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue'
|
|
|
+import {ElMessageBox, ElMessage, ElTag, ElImage, ElButton, ElInput} from 'element-plus'
|
|
|
+import {useTable} from '@/composables/useTable'
|
|
|
+import {schoolApi} from '@/api/schoolApi'
|
|
|
+import UserSearch from './user-search.vue'
|
|
|
+import {useUserStore} from '@/store/modules/user'
|
|
|
+import EmojiText from '@utils/ui/emojo'
|
|
|
+import {router} from '@/router'
|
|
|
+import {RoutesAlias} from '@/router/routesAlias'
|
|
|
+
|
|
|
+defineOptions({name: 'User'})
|
|
|
+
|
|
|
+const {list} = schoolApi
|
|
|
+const drawer = ref(false)
|
|
|
+
|
|
|
+// 搜索表单
|
|
|
+const searchForm = ref({
|
|
|
+ name: '',
|
|
|
+ is_cooperate: -1,
|
|
|
+ address: []
|
|
|
+})
|
|
|
|
|
|
- const {
|
|
|
- columns,
|
|
|
- columnChecks,
|
|
|
- data,
|
|
|
- loading,
|
|
|
- pagination,
|
|
|
- getData,
|
|
|
- searchParams,
|
|
|
- resetSearchParams,
|
|
|
- handleSizeChange,
|
|
|
- handleCurrentChange,
|
|
|
- refreshData
|
|
|
- } = useTable<SchoolListItem>({
|
|
|
- // 核心配置
|
|
|
- core: {
|
|
|
- apiFn: list,
|
|
|
- apiParams: {
|
|
|
- current: 1,
|
|
|
- size: 20,
|
|
|
- ...searchForm.value
|
|
|
+const currentRow = ref<Partial<Api.School.SchoolListItem>>({})
|
|
|
+
|
|
|
+const {
|
|
|
+ columns,
|
|
|
+ columnChecks,
|
|
|
+ data,
|
|
|
+ loading,
|
|
|
+ pagination,
|
|
|
+ getData,
|
|
|
+ searchParams,
|
|
|
+ resetSearchParams,
|
|
|
+ handleSizeChange,
|
|
|
+ handleCurrentChange,
|
|
|
+ refreshData
|
|
|
+} = useTable<Api.School.SchoolListItem>({
|
|
|
+ // 核心配置
|
|
|
+ core: {
|
|
|
+ apiFn: list,
|
|
|
+ apiParams: {
|
|
|
+ current: 1,
|
|
|
+ size: 20,
|
|
|
+ ...searchForm.value
|
|
|
+ },
|
|
|
+ // 排除 apiParams 中的属性
|
|
|
+ excludeParams: [],
|
|
|
+ columnsFactory: () => [
|
|
|
+ {
|
|
|
+ prop: 'name', label: '学校(校区)', formatter: (row) => {
|
|
|
+ return h(ElButton, {
|
|
|
+ type: 'primary',
|
|
|
+ link: true,
|
|
|
+ onClick: () => showDrawer(row),
|
|
|
+ style: {"text-decoration": 'underline'}
|
|
|
+ }, () => row.name)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {prop: 'area', label: '地区', formatter: (row) => row.province + row.city + row.area},
|
|
|
+ {prop: 'address', label: '详细地址'},
|
|
|
+ {
|
|
|
+ prop: 'canteen',
|
|
|
+ label: '关联食堂',
|
|
|
+ // sortable: true,
|
|
|
+ // checked: false, // 隐藏列
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElButton, {type: 'primary'}, () => '查看')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'concat',
|
|
|
+ label: '关系人',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElButton, {type: 'primary'}, () => '查看')
|
|
|
+ }
|
|
|
},
|
|
|
- // 排除 apiParams 中的属性
|
|
|
- excludeParams: [],
|
|
|
- columnsFactory: () => [
|
|
|
- { prop: 'name', label: '学校(校区)' },
|
|
|
- { prop: 'area', label: '地区', formatter: (row) => row.province + row.city + row.area },
|
|
|
- { prop: 'address', label: '详细地址' },
|
|
|
- {
|
|
|
- prop: 'canteen',
|
|
|
- label: '关联食堂',
|
|
|
- // sortable: true,
|
|
|
- // checked: false, // 隐藏列
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElButton, { type: 'primary' }, () => '查看')
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'concat',
|
|
|
- label: '关系人',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElButton, { type: 'primary' }, () => '查看')
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'is_cooperate',
|
|
|
- label: '合作状态',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.is_cooperate ? 'success' : 'danger' }, () =>
|
|
|
+ {
|
|
|
+ prop: 'is_cooperate',
|
|
|
+ label: '合作状态',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.is_cooperate ? 'success' : 'danger'}, () =>
|
|
|
row.is_cooperate ? '已合作' : '未合作'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- { prop: 'person_num', label: '在校人数', useSlot: true },
|
|
|
- { prop: 'is_eleme_in_school', label: '是否有饿了么校内站', useSlot: true },
|
|
|
- {
|
|
|
- prop: 'is_eleme_out_school',
|
|
|
- label: '是否有饿了么校外站',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.is_eleme_out_school ? 'success' : 'danger' }, () =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {prop: 'person_num', label: '在校人数', useSlot: true},
|
|
|
+ {prop: 'is_eleme_in_school', label: '是否有饿了么校内站', useSlot: true},
|
|
|
+ {
|
|
|
+ prop: 'is_eleme_out_school',
|
|
|
+ label: '是否有饿了么校外站',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.is_eleme_out_school ? 'success' : 'danger'}, () =>
|
|
|
row.is_eleme_out_school ? '有' : '无'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'is_meituan_in_school',
|
|
|
- label: '是否有美团校内站',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.is_meituan_in_school ? 'success' : 'danger' }, () =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'is_meituan_in_school',
|
|
|
+ label: '是否有美团校内站',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.is_meituan_in_school ? 'success' : 'danger'}, () =>
|
|
|
row.is_meituan_in_school ? '有' : '无'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'is_meituan_out_school',
|
|
|
- label: '是否有美团校外站',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.is_meituan_out_school ? 'success' : 'danger' }, () =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'is_meituan_out_school',
|
|
|
+ label: '是否有美团校外站',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.is_meituan_out_school ? 'success' : 'danger'}, () =>
|
|
|
row.is_meituan_out_school ? '有' : '无'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'can_go_upstairs',
|
|
|
- label: '是否能上楼',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.can_go_upstairs ? 'success' : 'danger' }, () =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'can_go_upstairs',
|
|
|
+ label: '是否能上楼',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.can_go_upstairs ? 'success' : 'danger'}, () =>
|
|
|
row.can_go_upstairs ? '不能' : '能'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'can_ride',
|
|
|
- label: '是否允许骑电动车',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.can_ride ? 'success' : 'danger' }, () =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'can_ride',
|
|
|
+ label: '是否允许骑电动车',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.can_ride ? 'success' : 'danger'}, () =>
|
|
|
row.can_ride ? '不能' : '能'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'dormitory_distribution',
|
|
|
- label: '宿舍分布情况',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.dormitory_distribution ? 'success' : 'danger' }, () =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'dormitory_distribution',
|
|
|
+ label: '宿舍分布情况',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.dormitory_distribution ? 'success' : 'danger'}, () =>
|
|
|
row.dormitory_distribution ? '是' : '否'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'qucan_station_distribution',
|
|
|
- label: '校门口取餐点离宿舍情况',
|
|
|
- formatter: (row) => {
|
|
|
- return h(ElTag, { type: row.qucan_station_distribution ? 'success' : 'danger' }, () =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'qucan_station_distribution',
|
|
|
+ label: '校门口取餐点离宿舍情况',
|
|
|
+ formatter: (row) => {
|
|
|
+ return h(ElTag, {type: row.qucan_station_distribution ? 'success' : 'danger'}, () =>
|
|
|
row.qucan_station_distribution ? '是' : '否'
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- { prop: 'out_business_description', label: '校外商圈情况', showOverflowTooltip: true },
|
|
|
- { prop: 'memo', label: '备注', showOverflowTooltip: true },
|
|
|
- {
|
|
|
- prop: 'operation',
|
|
|
- label: '操作',
|
|
|
- width: 120,
|
|
|
- fixed: 'right', // 固定列
|
|
|
- formatter: (row) =>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {prop: 'out_business_description', label: '校外商圈情况', showOverflowTooltip: true},
|
|
|
+ {prop: 'memo', label: '备注', showOverflowTooltip: true},
|
|
|
+ {
|
|
|
+ prop: 'operation',
|
|
|
+ label: '操作',
|
|
|
+ width: 120,
|
|
|
+ fixed: 'right', // 固定列
|
|
|
+ formatter: (row) =>
|
|
|
useUserStore().checkAuth(110202) &&
|
|
|
h('div', [
|
|
|
h(ArtButtonTable, {
|
|
|
+ type: 'view',
|
|
|
+ onClick: () => view(row.id)
|
|
|
+ }),
|
|
|
+ h(ArtButtonTable, {
|
|
|
type: 'edit',
|
|
|
onClick: () => edit(row.id)
|
|
|
}),
|
|
|
useUserStore().checkAuth(110203) &&
|
|
|
- h(ArtButtonTable, {
|
|
|
- type: 'delete',
|
|
|
- onClick: () => deleteUser(row.id)
|
|
|
- })
|
|
|
+ h(ArtButtonTable, {
|
|
|
+ type: 'delete',
|
|
|
+ onClick: () => deleteUser(row.id)
|
|
|
+ })
|
|
|
])
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- })
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+})
|
|
|
|
|
|
- // TODO:不知道为什么初始化会触发switch的change事件
|
|
|
- const isMounted = ref(false)
|
|
|
- onMounted(() => {
|
|
|
- setTimeout(() => {
|
|
|
- isMounted.value = true
|
|
|
- }, 1000)
|
|
|
- })
|
|
|
+// TODO:不知道为什么初始化会触发switch的change事件
|
|
|
+const isMounted = ref(false)
|
|
|
+onMounted(() => {
|
|
|
+ setTimeout(() => {
|
|
|
+ isMounted.value = true
|
|
|
+ }, 1000)
|
|
|
+})
|
|
|
|
|
|
- const doUpdateAttr = (scope: any) => {
|
|
|
- console.log(`%c scope == `, 'background:#41b883 ; padding:1px; color:#fff', scope)
|
|
|
- if (!scope.row.id || !isMounted.value) {
|
|
|
- return
|
|
|
- }
|
|
|
- schoolApi
|
|
|
- .updateAttr({ id: scope.row.id, attr: scope.prop, value: scope.row[scope.prop] })
|
|
|
+const doUpdateAttr = (scope: any) => {
|
|
|
+ console.log(`%c scope == `, 'background:#41b883 ; padding:1px; color:#fff', scope)
|
|
|
+ if (!scope.row.id || !isMounted.value) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ schoolApi
|
|
|
+ .updateAttr({id: scope.row.id, attr: scope.prop, value: scope.row[scope.prop]})
|
|
|
.then(() => {
|
|
|
ElMessage.success(`${EmojiText[200]} 修改成功`)
|
|
|
})
|
|
|
- }
|
|
|
+}
|
|
|
|
|
|
- /**
|
|
|
- * 搜索处理
|
|
|
- * @param params 参数
|
|
|
- */
|
|
|
- const handleSearch = (params: Record<string, any>) => {
|
|
|
- Object.assign(searchParams, { ...params })
|
|
|
- getData()
|
|
|
- }
|
|
|
+/**
|
|
|
+ * 搜索处理
|
|
|
+ * @param params 参数
|
|
|
+ */
|
|
|
+const handleSearch = (params: Record<string, any>) => {
|
|
|
+ Object.assign(searchParams, {...params})
|
|
|
+ getData()
|
|
|
+}
|
|
|
|
|
|
- /**
|
|
|
- * 编辑
|
|
|
- */
|
|
|
- const edit = (id?: number): void => {
|
|
|
- // if (worktabStore.getTab(RoutesAlias.SchoolEdit)) {
|
|
|
- // console.log(`%c RoutesAlias.SchoolEdit == `, 'background:#41b883 ; padding:1px; color:#fff', RoutesAlias.SchoolEdit);
|
|
|
- // worktabStore.removeTab(RoutesAlias.SchoolEdit)
|
|
|
- // }
|
|
|
- router.push({
|
|
|
- path: RoutesAlias.SchoolEdit,
|
|
|
- query: {
|
|
|
- id: id
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
+/**
|
|
|
+ * 编辑
|
|
|
+ */
|
|
|
+const edit = (id?: number): void => {
|
|
|
+ // if (worktabStore.getTab(RoutesAlias.SchoolEdit)) {
|
|
|
+ // console.log(`%c RoutesAlias.SchoolEdit == `, 'background:#41b883 ; padding:1px; color:#fff', RoutesAlias.SchoolEdit);
|
|
|
+ // worktabStore.removeTab(RoutesAlias.SchoolEdit)
|
|
|
+ // }
|
|
|
+ router.push({
|
|
|
+ path: RoutesAlias.SchoolEdit,
|
|
|
+ query: {
|
|
|
+ id: id
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
- /**
|
|
|
- * 删除用户
|
|
|
- */
|
|
|
- const deleteUser = (id: number): void => {
|
|
|
- ElMessageBox.confirm(`确定要删除该学校吗?`, '删除学校', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'error'
|
|
|
- }).then(() => {
|
|
|
- schoolApi.delete({ id: id }).then(() => {
|
|
|
- ElMessage.success(`${EmojiText[200]} 删除成功`)
|
|
|
- setTimeout(() => {
|
|
|
- getData()
|
|
|
- }, 1000)
|
|
|
- })
|
|
|
- })
|
|
|
- }
|
|
|
+/**
|
|
|
+ * 查看
|
|
|
+ */
|
|
|
+const view = (id: number): void => {
|
|
|
+ router.push({
|
|
|
+ path: RoutesAlias.SchoolInfo,
|
|
|
+ query: {
|
|
|
+ id: id
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const showDrawer = (row: Api.School.SchoolListItem): void => {
|
|
|
+ drawer.value = true;
|
|
|
+ currentRow.value = row
|
|
|
+}
|
|
|
|
|
|
- /**
|
|
|
- * 处理弹窗提交事件
|
|
|
- */
|
|
|
- const handleDialogSubmit = async () => {
|
|
|
- try {
|
|
|
- dialogVisible.value = false
|
|
|
- currentUserData.value = {}
|
|
|
- // 延迟更新 不然数据可能没更新
|
|
|
+/**
|
|
|
+ * 删除
|
|
|
+ */
|
|
|
+const deleteUser = (id: number): void => {
|
|
|
+ ElMessageBox.confirm(`确定要删除该学校吗?`, '删除学校', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'error'
|
|
|
+ }).then(() => {
|
|
|
+ schoolApi.delete({id: id}).then(() => {
|
|
|
+ ElMessage.success(`${EmojiText[200]} 删除成功`)
|
|
|
setTimeout(() => {
|
|
|
- refreshData()
|
|
|
+ getData()
|
|
|
}, 1000)
|
|
|
- } catch (error) {
|
|
|
- console.error('提交失败:', error)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理表格行选择变化
|
|
|
- */
|
|
|
- const handleSelectionChange = (selection: UserListItem[]): void => {
|
|
|
- selectedRows.value = selection
|
|
|
- console.log('选中行数据:', selectedRows.value)
|
|
|
- }
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- .user-page {
|
|
|
- :deep(.user) {
|
|
|
- .avatar {
|
|
|
- width: 40px;
|
|
|
- height: 40px;
|
|
|
- margin-left: 0;
|
|
|
- border-radius: 6px;
|
|
|
- }
|
|
|
+.user-page {
|
|
|
+ :deep(.user) {
|
|
|
+ .avatar {
|
|
|
+ width: 40px;
|
|
|
+ height: 40px;
|
|
|
+ margin-left: 0;
|
|
|
+ border-radius: 6px;
|
|
|
+ }
|
|
|
|
|
|
- > div {
|
|
|
- margin-left: 10px;
|
|
|
+ > div {
|
|
|
+ margin-left: 10px;
|
|
|
|
|
|
- .user-name {
|
|
|
- font-weight: 500;
|
|
|
- color: var(--art-text-gray-800);
|
|
|
- }
|
|
|
+ .user-name {
|
|
|
+ font-weight: 500;
|
|
|
+ color: var(--art-text-gray-800);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+}
|
|
|
+.el-drawer__title {
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: bold;
|
|
|
+}
|
|
|
+.detail {
|
|
|
+ //padding-top: 20px;
|
|
|
+ font-size: 14px;
|
|
|
+ .el-col {
|
|
|
+ margin-bottom: 30px;
|
|
|
+ label {
|
|
|
+ font-weight: bold;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|