import {NButton, NDataTable, NFormItem, NInput, NSelect, NSpace, useMessage} from 'naive-ui' import {defineComponent, onMounted, PropType, reactive, ref} from 'vue' import {musicSheetApplicationOwnerList} from '../../api' import SaveForm from "@components/save-form"; import Pagination from "@components/pagination"; import deepClone from "@/utils/deep.clone"; export default defineComponent({ name: 'musicSheetOwnerDialog', props: { musicSheetExtend: { type: Object as PropType, default: () => { } }, sourceType: { type: String, required: true }, appData: { type: Array, required: true, default: [] } }, emits: ['close', 'getList', "choseMusicSheetOwnerData"], setup(props, {slots, attrs, emit}) { const state = reactive({ loading: false, pagination: { page: 1, rows: 10, pageTotal: 0 }, searchForm: { applicationId: null, orgName: null, name: null, sourceType: null as any, }, dataList: [], appData: [] as any, // 适用项目行数据 }) const message = useMessage() const saveForm = ref() const onSubmit = () => { state.pagination.page = 1 getList() } const onSearch = () => { saveForm.value?.submit() } const getList = async () => { try { const applicationId = state.searchForm.applicationId; if (!applicationId) { message.warning("获取应用列表失败"); } state.loading = true state.searchForm.sourceType = props.sourceType const {data} = await musicSheetApplicationOwnerList({...state.pagination, ...state.searchForm}) state.pagination.pageTotal = Number(data.total) state.dataList = data.rows || [] } catch { } state.loading = false } onMounted(async () => { // 初始化应用 { // const appKeys = Object.keys(appKey); // // const {data} = await sysApplicationPage({page: 1, rows: 999, parentId: 0}) // const tempList = data.rows || [] // const filter = tempList.filter((next: any) => { // return appKeys.includes(next.appKey) // }); // filter.forEach((item: any) => { // item.label = item.appName // item.value = item.id // }) state.appData = deepClone(props.appData) if (state.appData.length == 0) { message.warning("获取应用列表失败") return } if (props.musicSheetExtend && props.musicSheetExtend.applicationId) { state.searchForm.applicationId = props.musicSheetExtend.applicationId } else { state.searchForm.applicationId = state.appData[0].value } } getList() }) const columns = (): any => { if (state.searchForm.sourceType === 'ORG') { return [ { title: '机构名称', key: 'orgName' }, { title: '操作', key: 'operation', fixed: 'right', render(row: any) { return ( { const choseMusicSheetOwnerData = { ...row, applicationId: state.searchForm.applicationId } emit("choseMusicSheetOwnerData", choseMusicSheetOwnerData) emit('close') }} > 选择 ) } } ] } else { return [ { title: '人员名称', key: 'userName' }, { title: '手机号', key: 'phone' }, { title: '操作', key: 'operation', fixed: 'right', render(row: any) { return ( { const choseMusicSheetOwnerData = { ...row, applicationId: state.searchForm.applicationId } emit("choseMusicSheetOwnerData", choseMusicSheetOwnerData) emit('close') }} > 选择 ) } } ] } } const orgColumns = (): any => { return [ { title: '机构名称', key: 'organizationRole' }, { title: '操作', key: 'operation', fixed: 'right', render(row: any) { return ( { const choseMusicSheetOwnerData = { ...row, applicationId: state.searchForm.applicationId } emit("choseMusicSheetOwnerData", choseMusicSheetOwnerData) emit('close') }} > 选择 ) } } ] } return () => (
(state.searchForm = val)} > {state.searchForm.sourceType === 'PERSON' && (<> )} {state.searchForm.sourceType === 'ORG' && (<> )} 搜索
{props.sourceType === 'PERSON' && ()} {props.sourceType === 'ORG' && ()}
) } })