Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
a5fe88db37
|
@ -40,12 +40,15 @@
|
|||
/>
|
||||
<a-radio-group v-else-if="item.type === 'radioGroup'" v-model:value="modelValue[field]" style="width: 100%" v-bind="item.componentsProps" :options="item.options" />
|
||||
<a-checkbox-group v-else-if="item.type === 'checkboxGroup'" v-model:value="modelValue[field]" style="width: 100%" v-bind="item.componentsProps" :options="item.options" />
|
||||
<!-- :show-search="item.showSearch" -->
|
||||
<!-- :placeholder="getPlaceholder(item)" -->
|
||||
<!-- :placeholder="item.placeholder" -->
|
||||
<a-select
|
||||
v-else-if="item.type === 'select'"
|
||||
v-model:value="modelValue[field]"
|
||||
style="width: 100%"
|
||||
:placeholder="item.placeholder"
|
||||
v-bind="item.componentsProps"
|
||||
:placeholder="getPlaceholder(item)"
|
||||
:allowClear="item.componentsProps?.allowClear ?? true"
|
||||
:options="item.options"
|
||||
/>
|
||||
|
@ -162,7 +165,13 @@ const getResponsive = (item: FormProMaxItemProps): Grid => {
|
|||
}
|
||||
|
||||
//优先级: 组件本身=》formItem=》label
|
||||
const getPlaceholder = (item: FormProMaxItemProps) => item.componentsProps?.placeholder ?? item.placeholder ?? (item.type.includes('input') ? `请输入${item.label}` : `请选择${item.label}`)
|
||||
const getPlaceholder = function (item: FormProMaxItemProps) {
|
||||
// console.log('getPlaceholder____________________________', item)
|
||||
// console.log('getPlaceholder_______________________placeholder', item.placeholder)
|
||||
// console.log(item.componentsProps?.placeholder ?? item.placeholder ?? (item.type.includes('input') ? `请输入${item.label}` : `请选择${item.label}`))
|
||||
|
||||
return item.componentsProps?.placeholder ?? item.placeholder ?? (item.type.includes('input') ? `请输入${item.label}` : `请选择${item.label}`)
|
||||
}
|
||||
|
||||
defineExpose<FormExpose>({
|
||||
validate: (nameList, options) => formProMaxRef.value?.validate(nameList, options),
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
</a-space>
|
||||
</template>
|
||||
</TableProMax>
|
||||
<a-modal v-model:open="visible" :title="serviceTitle" @ok="submit" @cancel="closeModal">
|
||||
<!-- <a-modal v-model:open="visible" :title="serviceTitle" @ok="submit" @cancel="closeModal">
|
||||
<FormProMax ref="formRef" v-model:value="formParams" :form-item-options="formItemOptions" />
|
||||
</a-modal>
|
||||
</a-modal> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -31,7 +31,8 @@ import { AutoComplete, Button, Input, message, Modal, Space } from 'ant-design-v
|
|||
import { debounce } from 'lodash-es'
|
||||
import FormProMax from '@/components/form/FormProMax.vue'
|
||||
import api from '@/axios'
|
||||
import { ref, reactive, computed, onMounted } from 'vue'
|
||||
// createVNode
|
||||
import { ref, reactive, computed, onMounted, createVNode } from 'vue'
|
||||
import TableProMax from '@/components/table/TableProMax.vue'
|
||||
import { TableProMaxProps } from '@/types/components/table/index.ts'
|
||||
import { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
@ -41,6 +42,7 @@ import { FormProMaxItemOptions } from '@/types/components/form//index.ts'
|
|||
import { FormExpose } from 'ant-design-vue/es/form/Form'
|
||||
import { serviceProjectSaveOrUpdateParams_ } from '@/types/views/serviceManagement'
|
||||
import { showEnterprisesUnit } from './index.tsx'
|
||||
var modal: any
|
||||
type _FormType = EnterprisesUnitSaveOrUpdateParams & {
|
||||
contactPersonInfoName?: string
|
||||
contactPersonInfoTelephone?: string
|
||||
|
@ -238,6 +240,7 @@ const saveOrUpdateEnterprisesUnit = (params: _FormType, callback: Function) => {
|
|||
type: 'select',
|
||||
label: '单位类型',
|
||||
required: true,
|
||||
placeholder: '请选择单位类型',
|
||||
// @ts-ignore
|
||||
options: dictSelectNodes('EnterprisesUnitType'),
|
||||
},
|
||||
|
@ -352,7 +355,7 @@ const netType = computed(() => {
|
|||
const formParams = ref<{
|
||||
snowFlakeId?: string
|
||||
enterprisesUnitId: string
|
||||
securityUnitId: string
|
||||
securityUnitId: string | null
|
||||
administrativeDivisionCodes?: null
|
||||
projectManagerMiniProgramUserId?: string
|
||||
projectManagerMiniProgramUserName?: string
|
||||
|
@ -372,7 +375,7 @@ const formParams = ref<{
|
|||
name: '',
|
||||
enterprisesUnitId: '',
|
||||
type: 'security',
|
||||
securityUnitId: '',
|
||||
securityUnitId: null, // 初始值得设置为null,不然 placeholder 显示不出来
|
||||
})
|
||||
const securityUnitIdList = ref<any>([])
|
||||
const formItemOptions = ref<FormProMaxItemOptions<serviceProjectSaveOrUpdateParams_>>({
|
||||
|
@ -387,6 +390,15 @@ const formItemOptions = ref<FormProMaxItemOptions<serviceProjectSaveOrUpdatePara
|
|||
label: '保安单位',
|
||||
required: true,
|
||||
options: securityUnitIdList,
|
||||
placeholder: '请选择或搜索保安单位',
|
||||
componentsProps: {
|
||||
// placeholder: '请选择或搜索保安单位',
|
||||
showSearch: true,
|
||||
// 是否根据输入项进行筛选。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false。
|
||||
filterOption: (input: string, option: any) => {
|
||||
return option.label.toLowerCase().includes(input?.toLowerCase())
|
||||
},
|
||||
},
|
||||
},
|
||||
type: {
|
||||
type: 'radioGroup',
|
||||
|
@ -616,7 +628,7 @@ const expandedRowRender: TableProMaxProps['expandedRowRender'] = ({ record }) =>
|
|||
<a-button
|
||||
class='btn-warn'
|
||||
onClick={async () => {
|
||||
visible.value = true
|
||||
// visible.value = true
|
||||
serviceTitle.value = '编辑服务项目'
|
||||
idNumberDisabled.value = record.twoType.value !== 'outsource'
|
||||
formParams.value.securityUnitId = record.securityUnitId //企事业单位id
|
||||
|
@ -635,6 +647,20 @@ const expandedRowRender: TableProMaxProps['expandedRowRender'] = ({ record }) =>
|
|||
formParams.value.houseTotal = record.houseTotal //户数
|
||||
formParams.value.staffTotal = record.staffTotal //工作人员数量
|
||||
formParams.value.securityUserTotal = record.securityUserTotal //保安人员数量
|
||||
|
||||
modal = Modal.confirm({
|
||||
title: serviceTitle.value,
|
||||
icon: createVNode('div'),
|
||||
width: 600,
|
||||
centered: true,
|
||||
content: () => <FormProMax ref={formRef} v-model:value={formParams.value} formItemOptions={formItemOptions.value} />,
|
||||
onOk: async () => {
|
||||
await submit()
|
||||
},
|
||||
onCancel: async () => {
|
||||
await closeModal()
|
||||
},
|
||||
})
|
||||
}}
|
||||
>
|
||||
编辑
|
||||
|
@ -676,9 +702,10 @@ const expandedRowRender: TableProMaxProps['expandedRowRender'] = ({ record }) =>
|
|||
}
|
||||
|
||||
const closeModal = async () => {
|
||||
console.log(modal)
|
||||
visible.value = false
|
||||
formParams.value = {
|
||||
securityUnitId: '',
|
||||
securityUnitId: null,
|
||||
enterprisesUnitId: '',
|
||||
administrativeDivisionCodes: '',
|
||||
name: '',
|
||||
|
@ -695,6 +722,9 @@ const closeModal = async () => {
|
|||
enterprisesUnitId.value = ''
|
||||
serviceTitle.value = '新增服务项目'
|
||||
idNumberDisabled.value = false
|
||||
modal.destroy()
|
||||
// console.log(modal)
|
||||
Modal.destroyAll()
|
||||
}
|
||||
|
||||
const submit = async () => {
|
||||
|
@ -704,6 +734,7 @@ const submit = async () => {
|
|||
message.success(resp.message)
|
||||
await _tableRef.value.requestGetTableData()
|
||||
await closeModal()
|
||||
// modal.destroy()
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
|
@ -711,7 +742,21 @@ onMounted(async () => {
|
|||
securityUnitIdList.value = res.data
|
||||
})
|
||||
const addService = function (record) {
|
||||
// modal.destroy()
|
||||
formParams.value.enterprisesUnitId = record.snowFlakeId //企事业单位Id
|
||||
visible.value = true
|
||||
// visible.value = true
|
||||
modal = Modal.confirm({
|
||||
title: serviceTitle.value,
|
||||
icon: createVNode('div'),
|
||||
width: 600,
|
||||
centered: true,
|
||||
content: () => <FormProMax ref={formRef} v-model:value={formParams.value} formItemOptions={formItemOptions.value} />,
|
||||
onOk: async () => {
|
||||
await submit()
|
||||
},
|
||||
onCancel: async () => {
|
||||
await closeModal()
|
||||
},
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue