mirror of
				https://github.com/continew-org/continew-admin-ui.git
				synced 2025-11-04 10:57:08 +08:00 
			
		
		
		
	refactor: 优化部分代码
This commit is contained in:
		@@ -146,6 +146,9 @@ const options: Options = {
 | 
				
			|||||||
  grid: { cols: 2 },
 | 
					  grid: { cols: 2 },
 | 
				
			||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
 | 
					  isOverride: false,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
const formColumns: Columns = reactive([
 | 
					const formColumns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: '作者名称',
 | 
					    label: '作者名称',
 | 
				
			||||||
@@ -198,8 +201,8 @@ const formColumns: Columns = reactive([
 | 
				
			|||||||
    type: 'switch',
 | 
					    type: 'switch',
 | 
				
			||||||
    props: {
 | 
					    props: {
 | 
				
			||||||
      type: 'round',
 | 
					      type: 'round',
 | 
				
			||||||
      checkedValue: 1,
 | 
					      checkedValue: true,
 | 
				
			||||||
      uncheckedValue: 2,
 | 
					      uncheckedValue: false,
 | 
				
			||||||
      checkedText: '是',
 | 
					      checkedText: '是',
 | 
				
			||||||
      uncheckedText: '否',
 | 
					      uncheckedText: '否',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -233,10 +236,6 @@ const columns: TableInstanceColumns[] = [
 | 
				
			|||||||
  { title: '关联字典', slotName: 'dictCode' },
 | 
					  { title: '关联字典', slotName: 'dictCode' },
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					 | 
				
			||||||
  isOverride: false,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
@@ -281,6 +280,7 @@ const onOpen = async (tableName: string, comment: string) => {
 | 
				
			|||||||
  // 查询生成配置
 | 
					  // 查询生成配置
 | 
				
			||||||
  const { data } = await getGenConfig(tableName)
 | 
					  const { data } = await getGenConfig(tableName)
 | 
				
			||||||
  Object.assign(form, data)
 | 
					  Object.assign(form, data)
 | 
				
			||||||
 | 
					  form.isOverride = form.isOverride || false
 | 
				
			||||||
  visible.value = true
 | 
					  visible.value = true
 | 
				
			||||||
  // 查询字段配置
 | 
					  // 查询字段配置
 | 
				
			||||||
  await getDataList(tableName, false)
 | 
					  await getDataList(tableName, false)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -113,7 +113,7 @@ const handleLogin = async () => {
 | 
				
			|||||||
    })
 | 
					    })
 | 
				
			||||||
    tabsStore.reset()
 | 
					    tabsStore.reset()
 | 
				
			||||||
    const { redirect, ...othersQuery } = router.currentRoute.value.query
 | 
					    const { redirect, ...othersQuery } = router.currentRoute.value.query
 | 
				
			||||||
    router.push({
 | 
					    await router.push({
 | 
				
			||||||
      path: (redirect as string) || '/',
 | 
					      path: (redirect as string) || '/',
 | 
				
			||||||
      query: {
 | 
					      query: {
 | 
				
			||||||
        ...othersQuery,
 | 
					        ...othersQuery,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,6 +37,10 @@ const options: Options = {
 | 
				
			|||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
 | 
					  status: 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: '名称',
 | 
					    label: '名称',
 | 
				
			||||||
@@ -46,7 +50,7 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: '失效时间',
 | 
					    label: '失效时间',
 | 
				
			||||||
    field: 'expirationTime',
 | 
					    field: 'expireTime',
 | 
				
			||||||
    type: 'date-picker',
 | 
					    type: 'date-picker',
 | 
				
			||||||
    props: {
 | 
					    props: {
 | 
				
			||||||
      placeholder: '请选择失效时间',
 | 
					      placeholder: '请选择失效时间',
 | 
				
			||||||
@@ -76,10 +80,6 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					 | 
				
			||||||
  status: 1,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
    :title="title"
 | 
					    :title="title"
 | 
				
			||||||
    :mask-closable="false"
 | 
					    :mask-closable="false"
 | 
				
			||||||
    :esc-to-close="false"
 | 
					    :esc-to-close="false"
 | 
				
			||||||
    :width="width >= 600 ? 600 : '100%'"
 | 
					    :width="width >= 700 ? 700 : '100%'"
 | 
				
			||||||
    @before-ok="save"
 | 
					    @before-ok="save"
 | 
				
			||||||
    @close="reset"
 | 
					    @close="reset"
 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
@@ -182,6 +182,7 @@ import { addJob, listGroup, updateJob } from '@/apis/schedule/job'
 | 
				
			|||||||
import { useForm } from '@/hooks'
 | 
					import { useForm } from '@/hooks'
 | 
				
			||||||
import { useDict } from '@/hooks/app'
 | 
					import { useDict } from '@/hooks/app'
 | 
				
			||||||
import CronGeneratorModal from '@/components/GenCron/CronModel/index.vue'
 | 
					import CronGeneratorModal from '@/components/GenCron/CronModel/index.vue'
 | 
				
			||||||
 | 
					import type { LabelValueState } from '@/types/global'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const emit = defineEmits<{
 | 
					const emit = defineEmits<{
 | 
				
			||||||
  (e: 'save-success'): void
 | 
					  (e: 'save-success'): void
 | 
				
			||||||
@@ -196,7 +197,7 @@ const visible = ref(false)
 | 
				
			|||||||
const isUpdate = computed(() => !!dataId.value)
 | 
					const isUpdate = computed(() => !!dataId.value)
 | 
				
			||||||
const title = computed(() => (isUpdate.value ? '修改任务' : '新增任务'))
 | 
					const title = computed(() => (isUpdate.value ? '修改任务' : '新增任务'))
 | 
				
			||||||
const formRef = ref<FormInstance>()
 | 
					const formRef = ref<FormInstance>()
 | 
				
			||||||
const groupList = ref()
 | 
					const groupList = ref<LabelValueState[]>([])
 | 
				
			||||||
const genModal = ref()
 | 
					const genModal = ref()
 | 
				
			||||||
const { job_trigger_type_enum, job_task_type_enum, job_route_strategy_enum, job_block_strategy_enum } = useDict(
 | 
					const { job_trigger_type_enum, job_task_type_enum, job_route_strategy_enum, job_block_strategy_enum } = useDict(
 | 
				
			||||||
  'job_trigger_type_enum',
 | 
					  'job_trigger_type_enum',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,17 +17,27 @@
 | 
				
			|||||||
import { useWindowSize } from '@vueuse/core'
 | 
					import { useWindowSize } from '@vueuse/core'
 | 
				
			||||||
import { Message } from '@arco-design/web-vue'
 | 
					import { Message } from '@arco-design/web-vue'
 | 
				
			||||||
import { updateUserBaseInfo } from '@/apis/system'
 | 
					import { updateUserBaseInfo } from '@/apis/system'
 | 
				
			||||||
import { type Columns, GiForm } from '@/components/GiForm'
 | 
					import { type Columns, GiForm, type Options } from '@/components/GiForm'
 | 
				
			||||||
import { useForm } from '@/hooks'
 | 
					import { useForm } from '@/hooks'
 | 
				
			||||||
import { useUserStore } from '@/stores'
 | 
					import { useUserStore } from '@/stores'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { width } = useWindowSize()
 | 
					const { width } = useWindowSize()
 | 
				
			||||||
 | 
					const userStore = useUserStore()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const userInfo = computed(() => userStore.userInfo)
 | 
				
			||||||
 | 
					const visible = ref(false)
 | 
				
			||||||
 | 
					const formRef = ref<InstanceType<typeof GiForm>>()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const options: Options = {
 | 
					const options: Options = {
 | 
				
			||||||
  form: { size: 'large' },
 | 
					  form: { size: 'large' },
 | 
				
			||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
 | 
					  nickname: userInfo.value.nickname,
 | 
				
			||||||
 | 
					  gender: userInfo.value.gender,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: '昵称',
 | 
					    label: '昵称',
 | 
				
			||||||
@@ -48,27 +58,12 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const userStore = useUserStore()
 | 
					 | 
				
			||||||
const userInfo = computed(() => userStore.userInfo)
 | 
					 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					 | 
				
			||||||
  nickname: userInfo.value.nickname,
 | 
					 | 
				
			||||||
  gender: userInfo.value.gender,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const formRef = ref<InstanceType<typeof GiForm>>()
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
  resetForm()
 | 
					  resetForm()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const visible = ref(false)
 | 
					 | 
				
			||||||
// 修改
 | 
					 | 
				
			||||||
const onUpdate = async () => {
 | 
					 | 
				
			||||||
  reset()
 | 
					 | 
				
			||||||
  visible.value = true
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 保存
 | 
					// 保存
 | 
				
			||||||
const save = async () => {
 | 
					const save = async () => {
 | 
				
			||||||
  const isInvalid = await formRef.value?.formRef?.validate()
 | 
					  const isInvalid = await formRef.value?.formRef?.validate()
 | 
				
			||||||
@@ -84,5 +79,11 @@ const save = async () => {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 修改
 | 
				
			||||||
 | 
					const onUpdate = async () => {
 | 
				
			||||||
 | 
					  reset()
 | 
				
			||||||
 | 
					  visible.value = true
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineExpose({ onUpdate })
 | 
					defineExpose({ onUpdate })
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -55,6 +55,11 @@ const options: Options = {
 | 
				
			|||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
 | 
					  sort: 999,
 | 
				
			||||||
 | 
					  status: 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: '上级部门',
 | 
					    label: '上级部门',
 | 
				
			||||||
@@ -118,11 +123,6 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					 | 
				
			||||||
  sort: 999,
 | 
					 | 
				
			||||||
  status: 1,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,6 +23,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
import { Message } from '@arco-design/web-vue'
 | 
					import { Message } from '@arco-design/web-vue'
 | 
				
			||||||
 | 
					import { useWindowSize } from '@vueuse/core'
 | 
				
			||||||
import { addDictItem, getDictItem, updateDictItem } from '@/apis/system/dict'
 | 
					import { addDictItem, getDictItem, updateDictItem } from '@/apis/system/dict'
 | 
				
			||||||
import { type Columns, GiForm, type Options } from '@/components/GiForm'
 | 
					import { type Columns, GiForm, type Options } from '@/components/GiForm'
 | 
				
			||||||
import { useForm } from '@/hooks'
 | 
					import { useForm } from '@/hooks'
 | 
				
			||||||
@@ -31,6 +32,8 @@ const emit = defineEmits<{
 | 
				
			|||||||
  (e: 'save-success'): void
 | 
					  (e: 'save-success'): void
 | 
				
			||||||
}>()
 | 
					}>()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { width } = useWindowSize()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const dataId = ref('')
 | 
					const dataId = ref('')
 | 
				
			||||||
const dictId = ref('')
 | 
					const dictId = ref('')
 | 
				
			||||||
const visible = ref(false)
 | 
					const visible = ref(false)
 | 
				
			||||||
@@ -43,6 +46,12 @@ const options: Options = {
 | 
				
			|||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
 | 
					  color: 'blue',
 | 
				
			||||||
 | 
					  sort: 999,
 | 
				
			||||||
 | 
					  status: 1,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  { label: '标签', field: 'label', type: 'input', rules: [{ required: true, message: '请输入标签' }] },
 | 
					  { label: '标签', field: 'label', type: 'input', rules: [{ required: true, message: '请输入标签' }] },
 | 
				
			||||||
  { label: '值', field: 'value', type: 'input', rules: [{ required: true, message: '请输入值' }] },
 | 
					  { label: '值', field: 'value', type: 'input', rules: [{ required: true, message: '请输入值' }] },
 | 
				
			||||||
@@ -79,12 +88,6 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					 | 
				
			||||||
  color: 'blue',
 | 
					 | 
				
			||||||
  sort: 999,
 | 
					 | 
				
			||||||
  status: 1,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,6 +37,8 @@ const options: Options = {
 | 
				
			|||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  { label: '名称', field: 'name', type: 'input', rules: [{ required: true, message: '请输入名称' }] },
 | 
					  { label: '名称', field: 'name', type: 'input', rules: [{ required: true, message: '请输入名称' }] },
 | 
				
			||||||
  { label: '编码', field: 'code', type: 'input', disabled: () => isUpdate.value, rules: [{ required: true, message: '请输入编码' }] },
 | 
					  { label: '编码', field: 'code', type: 'input', disabled: () => isUpdate.value, rules: [{ required: true, message: '请输入编码' }] },
 | 
				
			||||||
@@ -51,8 +53,6 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
    </a-space>
 | 
					    </a-space>
 | 
				
			||||||
    <div v-if="chartData.length > 0">
 | 
					    <div v-if="chartData.length > 0">
 | 
				
			||||||
      <a-divider />
 | 
					      <a-divider />
 | 
				
			||||||
      <VCharts :option="option" autoresize :style="{ height: '120px', width: '150px' }" />
 | 
					      <VCharts :option="chartOption" autoresize :style="{ height: '120px', width: '150px' }" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </section>
 | 
					  </section>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
@@ -38,7 +38,7 @@ const totalData = ref<FileStatisticsResp>({
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
const chartData = ref<Array<{ name: string, value: number, size: string }>>([])
 | 
					const chartData = ref<Array<{ name: string, value: number, size: string }>>([])
 | 
				
			||||||
const statisticValueStyle = { 'color': '#5856D6', 'font-size': '18px' }
 | 
					const statisticValueStyle = { 'color': '#5856D6', 'font-size': '18px' }
 | 
				
			||||||
const { option } = useChart(() => {
 | 
					const { chartOption } = useChart(() => {
 | 
				
			||||||
  return {
 | 
					  return {
 | 
				
			||||||
    grid: {
 | 
					    grid: {
 | 
				
			||||||
      left: 0,
 | 
					      left: 0,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,15 +2,15 @@
 | 
				
			|||||||
  <div ref="containerRef" class="detail">
 | 
					  <div ref="containerRef" class="detail">
 | 
				
			||||||
    <div class="detail_header">
 | 
					    <div class="detail_header">
 | 
				
			||||||
      <a-affix :target="(containerRef as HTMLElement)">
 | 
					      <a-affix :target="(containerRef as HTMLElement)">
 | 
				
			||||||
        <a-page-header title="通知公告" :subtitle="type === 'edit' ? '修改' : '新增'" @back="onBack">
 | 
					        <a-page-header title="通知公告" :subtitle="title" @back="onBack">
 | 
				
			||||||
          <template #extra>
 | 
					          <template #extra>
 | 
				
			||||||
            <a-button type="primary" @click="onReleased">
 | 
					            <a-button type="primary" @click="save">
 | 
				
			||||||
              <template #icon>
 | 
					              <template #icon>
 | 
				
			||||||
                <icon-save v-if="type === 'edit'" />
 | 
					                <icon-save v-if="isUpdate" />
 | 
				
			||||||
                <icon-send v-else />
 | 
					                <icon-send v-else />
 | 
				
			||||||
              </template>
 | 
					              </template>
 | 
				
			||||||
              <template #default>
 | 
					              <template #default>
 | 
				
			||||||
                {{ type === 'edit' ? '保存' : '发布' }}
 | 
					                {{ isUpdate ? '保存' : '发布' }}
 | 
				
			||||||
              </template>
 | 
					              </template>
 | 
				
			||||||
            </a-button>
 | 
					            </a-button>
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
@@ -59,21 +59,32 @@
 | 
				
			|||||||
import { Message } from '@arco-design/web-vue'
 | 
					import { Message } from '@arco-design/web-vue'
 | 
				
			||||||
import { useWindowSize } from '@vueuse/core'
 | 
					import { useWindowSize } from '@vueuse/core'
 | 
				
			||||||
import AiEditor from './components/index.vue'
 | 
					import AiEditor from './components/index.vue'
 | 
				
			||||||
import { useTabsStore } from '@/stores'
 | 
					import { addNotice, getNotice, updateNotice } from '@/apis/system/notice'
 | 
				
			||||||
 | 
					import { listUserDict } from '@/apis'
 | 
				
			||||||
import { type Columns, GiForm, type Options } from '@/components/GiForm'
 | 
					import { type Columns, GiForm, type Options } from '@/components/GiForm'
 | 
				
			||||||
import { addNotice, getNotice, updateNotice } from '@/apis/system'
 | 
					import type { LabelValueState } from '@/types/global'
 | 
				
			||||||
 | 
					import { useTabsStore } from '@/stores'
 | 
				
			||||||
import { useForm } from '@/hooks'
 | 
					import { useForm } from '@/hooks'
 | 
				
			||||||
import { useDict } from '@/hooks/app'
 | 
					import { useDict } from '@/hooks/app'
 | 
				
			||||||
import { listUserDict } from '@/apis'
 | 
					 | 
				
			||||||
import type { LabelValueState } from '@/types/global'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { width } = useWindowSize()
 | 
					const { width } = useWindowSize()
 | 
				
			||||||
const { notice_type } = useDict('notice_type')
 | 
					 | 
				
			||||||
const containerRef = ref<HTMLElement | null>()
 | 
					 | 
				
			||||||
const tabsStore = useTabsStore()
 | 
					 | 
				
			||||||
const route = useRoute()
 | 
					const route = useRoute()
 | 
				
			||||||
const formRef = ref<InstanceType<typeof GiForm>>()
 | 
					const router = useRouter()
 | 
				
			||||||
 | 
					const tabsStore = useTabsStore()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { id, type } = route.query
 | 
					const { id, type } = route.query
 | 
				
			||||||
 | 
					const isUpdate = computed(() => type === 'update')
 | 
				
			||||||
 | 
					const title = computed(() => (isUpdate.value ? '修改' : '新增'))
 | 
				
			||||||
 | 
					const containerRef = ref<HTMLElement | null>()
 | 
				
			||||||
 | 
					const formRef = ref<InstanceType<typeof GiForm>>()
 | 
				
			||||||
 | 
					const { notice_type } = useDict('notice_type')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const options: Options = {
 | 
				
			||||||
 | 
					  form: { size: 'large' },
 | 
				
			||||||
 | 
					  grid: { cols: 2 },
 | 
				
			||||||
 | 
					  btns: { hide: true },
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
  title: '',
 | 
					  title: '',
 | 
				
			||||||
  type: '',
 | 
					  type: '',
 | 
				
			||||||
@@ -82,11 +93,6 @@ const { form, resetForm } = useForm({
 | 
				
			|||||||
  content: '',
 | 
					  content: '',
 | 
				
			||||||
  noticeScope: 1,
 | 
					  noticeScope: 1,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
const options: Options = {
 | 
					 | 
				
			||||||
  form: { size: 'large' },
 | 
					 | 
				
			||||||
  grid: { cols: 2 },
 | 
					 | 
				
			||||||
  btns: { hide: true },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -149,17 +155,18 @@ const onUpdate = async (id: string) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// 返回
 | 
					// 返回
 | 
				
			||||||
const onBack = () => {
 | 
					const onBack = () => {
 | 
				
			||||||
 | 
					  router.back()
 | 
				
			||||||
  tabsStore.closeCurrent(route.path)
 | 
					  tabsStore.closeCurrent(route.path)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 发布
 | 
					// 保存
 | 
				
			||||||
const onReleased = async () => {
 | 
					const save = async () => {
 | 
				
			||||||
  const isInvalid = await formRef.value?.formRef?.validate()
 | 
					  const isInvalid = await formRef.value?.formRef?.validate()
 | 
				
			||||||
  if (isInvalid) return false
 | 
					  if (isInvalid) return false
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
    // 通知范围 所有人 去除指定用户
 | 
					    // 通知范围 所有人 去除指定用户
 | 
				
			||||||
    form.noticeUsers = form.noticeScope === 1 ? null : form.noticeUsers
 | 
					    form.noticeUsers = form.noticeScope === 1 ? null : form.noticeUsers
 | 
				
			||||||
    if (type === 'edit') {
 | 
					    if (isUpdate.value) {
 | 
				
			||||||
      await updateNotice(form, id as string)
 | 
					      await updateNotice(form, id as string)
 | 
				
			||||||
      Message.success('修改成功')
 | 
					      Message.success('修改成功')
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
@@ -194,9 +201,9 @@ const onSelectUser = (value: string[]) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const userList = ref<LabelValueState[]>([])
 | 
					const userList = ref<LabelValueState[]>([])
 | 
				
			||||||
onMounted(async () => {
 | 
					onMounted(async () => {
 | 
				
			||||||
  // 当id存在与type为edit时,执行修改操作
 | 
					  // 当id存在与type为update时,执行修改操作
 | 
				
			||||||
  if (id && type === 'edit') {
 | 
					  if (id && isUpdate.value) {
 | 
				
			||||||
    onUpdate(id as string)
 | 
					    await onUpdate(id as string)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // 获取所有用户
 | 
					  // 获取所有用户
 | 
				
			||||||
  const { data } = await listUserDict()
 | 
					  const { data } = await listUserDict()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,15 +39,16 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
import AiEditor from './components/index.vue'
 | 
					import AiEditor from './components/index.vue'
 | 
				
			||||||
import { useTabsStore } from '@/stores'
 | 
					 | 
				
			||||||
import { getNotice } from '@/apis/system/notice'
 | 
					import { getNotice } from '@/apis/system/notice'
 | 
				
			||||||
 | 
					import { useTabsStore } from '@/stores'
 | 
				
			||||||
import { useForm } from '@/hooks'
 | 
					import { useForm } from '@/hooks'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const containerRef = ref<HTMLElement | null>()
 | 
					 | 
				
			||||||
const tabsStore = useTabsStore()
 | 
					 | 
				
			||||||
const route = useRoute()
 | 
					const route = useRoute()
 | 
				
			||||||
const router = useRouter()
 | 
					const router = useRouter()
 | 
				
			||||||
 | 
					const tabsStore = useTabsStore()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { id } = route.query
 | 
					const { id } = route.query
 | 
				
			||||||
 | 
					const containerRef = ref<HTMLElement | null>()
 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
  title: '',
 | 
					  title: '',
 | 
				
			||||||
  createUserString: '',
 | 
					  createUserString: '',
 | 
				
			||||||
@@ -56,19 +57,21 @@ const { form, resetForm } = useForm({
 | 
				
			|||||||
  content: '',
 | 
					  content: '',
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 修改
 | 
					// 回退
 | 
				
			||||||
const onDetail = async (id: string) => {
 | 
					 | 
				
			||||||
  resetForm()
 | 
					 | 
				
			||||||
  const res = await getNotice(id)
 | 
					 | 
				
			||||||
  Object.assign(form, res.data)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
const onBack = () => {
 | 
					const onBack = () => {
 | 
				
			||||||
  router.back()
 | 
					  router.back()
 | 
				
			||||||
  tabsStore.closeCurrent(route.path)
 | 
					  tabsStore.closeCurrent(route.path)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 打开
 | 
				
			||||||
 | 
					const onOpen = async (id: string) => {
 | 
				
			||||||
 | 
					  resetForm()
 | 
				
			||||||
 | 
					  const { data } = await getNotice(id)
 | 
				
			||||||
 | 
					  Object.assign(form, data)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
onMounted(() => {
 | 
					onMounted(() => {
 | 
				
			||||||
  onDetail(id as string)
 | 
					  onOpen(id as string)
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -123,7 +123,7 @@ const onAdd = () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// 修改
 | 
					// 修改
 | 
				
			||||||
const onUpdate = (record: NoticeResp) => {
 | 
					const onUpdate = (record: NoticeResp) => {
 | 
				
			||||||
  router.push({ path: '/system/notice/add', query: { id: record.id, type: 'edit' } })
 | 
					  router.push({ path: '/system/notice/add', query: { id: record.id, type: 'update' } })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 详情
 | 
					// 详情
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,6 +42,11 @@ const options: Options = {
 | 
				
			|||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({
 | 
				
			||||||
 | 
					  gender: 1 as Gender,
 | 
				
			||||||
 | 
					  status: 1 as Status,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: '用户名',
 | 
					    label: '用户名',
 | 
				
			||||||
@@ -160,11 +165,6 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({
 | 
					 | 
				
			||||||
  gender: 1 as Gender,
 | 
					 | 
				
			||||||
  status: 1 as Status,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,12 +34,12 @@ const options: Options = {
 | 
				
			|||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  { label: '密码', field: 'newPassword', type: 'input-password', rules: [{ required: true, message: '请输入密码' }] },
 | 
					  { label: '密码', field: 'newPassword', type: 'input-password', rules: [{ required: true, message: '请输入密码' }] },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,8 @@ const options: Options = {
 | 
				
			|||||||
  btns: { hide: true },
 | 
					  btns: { hide: true },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const { form, resetForm } = useForm({})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const columns: Columns = reactive([
 | 
					const columns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: '角色',
 | 
					    label: '角色',
 | 
				
			||||||
@@ -52,8 +54,6 @@ const columns: Columns = reactive([
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { form, resetForm } = useForm({})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  formRef.value?.formRef?.resetFields()
 | 
					  formRef.value?.formRef?.resetFields()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -101,13 +101,13 @@ import UserImportDrawer from './UserImportDrawer.vue'
 | 
				
			|||||||
import UserDetailDrawer from './UserDetailDrawer.vue'
 | 
					import UserDetailDrawer from './UserDetailDrawer.vue'
 | 
				
			||||||
import UserResetPwdModal from './UserResetPwdModal.vue'
 | 
					import UserResetPwdModal from './UserResetPwdModal.vue'
 | 
				
			||||||
import UserUpdateRoleModal from './UserUpdateRoleModal.vue'
 | 
					import UserUpdateRoleModal from './UserUpdateRoleModal.vue'
 | 
				
			||||||
import { type UserQuery, type UserResp, deleteUser, exportUser, listUser } from '@/apis/system/user'
 | 
					import { type UserResp, deleteUser, exportUser, listUser } from '@/apis/system/user'
 | 
				
			||||||
import type { Columns, Options } from '@/components/GiForm'
 | 
					import type { Columns, Options } from '@/components/GiForm'
 | 
				
			||||||
import type { TableInstanceColumns } from '@/components/GiTable/type'
 | 
					import type { TableInstanceColumns } from '@/components/GiTable/type'
 | 
				
			||||||
import { useDownload, useTable } from '@/hooks'
 | 
					import { DisEnableStatusList } from '@/constant/common'
 | 
				
			||||||
 | 
					import { useDownload, useForm, useTable } from '@/hooks'
 | 
				
			||||||
import { isMobile } from '@/utils'
 | 
					import { isMobile } from '@/utils'
 | 
				
			||||||
import has from '@/utils/has'
 | 
					import has from '@/utils/has'
 | 
				
			||||||
import { DisEnableStatusList } from '@/constant/common'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
defineOptions({ name: 'SystemUser' })
 | 
					defineOptions({ name: 'SystemUser' })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -116,6 +116,9 @@ const options: Options = reactive({
 | 
				
			|||||||
  grid: { cols: { xs: 1, sm: 1, md: 2, lg: 3, xl: 3, xxl: 3 } },
 | 
					  grid: { cols: { xs: 1, sm: 1, md: 2, lg: 3, xl: 3, xxl: 3 } },
 | 
				
			||||||
  fold: { enable: true, index: 1, defaultCollapsed: true },
 | 
					  fold: { enable: true, index: 1, defaultCollapsed: true },
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					const { form: queryForm, resetForm } = useForm({
 | 
				
			||||||
 | 
					  sort: ['t1.id,desc'],
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
const queryFormColumns: Columns = reactive([
 | 
					const queryFormColumns: Columns = reactive([
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    type: 'input',
 | 
					    type: 'input',
 | 
				
			||||||
@@ -147,9 +150,6 @@ const queryFormColumns: Columns = reactive([
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
const queryForm = reactive<UserQuery>({
 | 
					 | 
				
			||||||
  sort: ['t1.id,desc'],
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const {
 | 
					const {
 | 
				
			||||||
  tableData: dataList,
 | 
					  tableData: dataList,
 | 
				
			||||||
@@ -207,9 +207,7 @@ const columns: TableInstanceColumns[] = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// 重置
 | 
					// 重置
 | 
				
			||||||
const reset = () => {
 | 
					const reset = () => {
 | 
				
			||||||
  queryForm.description = undefined
 | 
					  resetForm()
 | 
				
			||||||
  queryForm.status = undefined
 | 
					 | 
				
			||||||
  queryForm.createTime = []
 | 
					 | 
				
			||||||
  search()
 | 
					  search()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user