diff --git a/apps/web-contract/src/views/contract/approval/edit/index.vue b/apps/web-contract/src/views/contract/approval/edit/index.vue index 451c0c6a..4e7bcd67 100644 --- a/apps/web-contract/src/views/contract/approval/edit/index.vue +++ b/apps/web-contract/src/views/contract/approval/edit/index.vue @@ -213,8 +213,6 @@ async function handleChooseUserConfirm(e) { } async function handleSave() { - isLoading.value = true; - try { await formRef.value.submit(); } catch { @@ -223,6 +221,8 @@ async function handleSave() { } try { + isLoading.value = true; + let newForm: any = {}; // 判断有没有签约依据 diff --git a/apps/web-contract/src/views/contract/declaration/edit/curd.tsx b/apps/web-contract/src/views/contract/declaration/edit/curd.tsx index 14778fe7..8f5f327f 100644 --- a/apps/web-contract/src/views/contract/declaration/edit/curd.tsx +++ b/apps/web-contract/src/views/contract/declaration/edit/curd.tsx @@ -2,10 +2,10 @@ import { dict } from '@fast-crud/fast-crud'; import { message } from 'ant-design-vue'; import dayjs, { type Dayjs } from 'dayjs'; -import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict'; +import { DICT_TYPE, getDictOptions } from '#/utils/dict'; export function getFormSchema(params: any = {}) { - const { chooseCompanyModalApi, formRef } = params || {}; + const { chooseCompanyModalApi, formRef, dictMap } = params || {}; const disabledDate = (current: Dayjs) => { const form = formRef.value.form; @@ -43,7 +43,7 @@ export function getFormSchema(params: any = {}) { vModel: 'value', allowClear: false, }, - rules: [{ required: true }], + rules: [{ required: true, message: '请输入合同标的' }], }, objectsSum: { title: '标的金额', @@ -57,10 +57,7 @@ export function getFormSchema(params: any = {}) { suffixRender({ form }) { return ( - { - getDictObj(DICT_TYPE.contract_currency_unit, form.priceType) - ?.label - } + {dictMap[DICT_TYPE.contract_currency_unit]?.label} ); }, @@ -74,7 +71,7 @@ export function getFormSchema(params: any = {}) { vModel: 'value', allowClear: false, dict: dict({ - data: getDictOptions(DICT_TYPE.common_whether), + data: dictMap[DICT_TYPE.common_whether], }), }, }, @@ -145,10 +142,8 @@ export function getFormSchema(params: any = {}) { }, render({ form }) { // 注意此处的v-model写法 - const options1 = getDictOptions( - DICT_TYPE.contract_authorization_period, - 'string', - ); + + const options1 = dictMap[DICT_TYPE.contract_authorization_period]; return (
diff --git a/apps/web-contract/src/views/contract/declaration/edit/index.vue b/apps/web-contract/src/views/contract/declaration/edit/index.vue index a4e2ef76..2ac713c4 100644 --- a/apps/web-contract/src/views/contract/declaration/edit/index.vue +++ b/apps/web-contract/src/views/contract/declaration/edit/index.vue @@ -15,6 +15,7 @@ import { logger } from 'common-utils'; import Apis from '#/api'; import { useVxeTable } from '#/hooks/vxeTable'; +import { DICT_TYPE, getDictDatasAsync } from '#/utils/dict'; import { FileUploader } from '#/utils/file'; import chooseUserModal from '#/views/system/user/choose-user-modal.vue'; @@ -53,9 +54,7 @@ const formBindingByBaseInfo = ref({ columns: {}, }); -const formBinding = ref({ - ...getFormSchema({ chooseCompanyModalApi, formRef }), -}); +const formBinding = ref(null); function getColumns(): any { return [ @@ -223,6 +222,10 @@ async function handleSave() { // newForm.fileUuid = (files.map((item) => item.fileUuid) || []).join(',') // } + form.ctrBaseId = form.contractId; + form.ctrName = form.contractName; + delete form.guid; + const data = await Apis.sbCtrBasePt.post_save({ data: form }); id.value = data.value; message.success('保存成功'); @@ -271,6 +274,18 @@ onMounted(async () => { }); contractTypeData.value = contractReferTypeData.rows || []; + // 查询我方签约人 + + const dictMap = await getDictDatasAsync([ + DICT_TYPE.contract_currency_unit, + DICT_TYPE.common_whether, + DICT_TYPE.contract_authorization_period, + ]); + formBinding.value = getFormSchema({ + chooseCompanyModalApi, + formRef, + dictMap, + }); formBindingByBaseInfo.value.columns = getFormSchemaByBaseInfo({ contractTypeData: contractTypeData.value, }); diff --git a/apps/web-contract/src/views/contract/sign-authorization/edit/curd.tsx b/apps/web-contract/src/views/contract/sign-authorization/edit/curd.tsx index 2bca092b..de8a8657 100644 --- a/apps/web-contract/src/views/contract/sign-authorization/edit/curd.tsx +++ b/apps/web-contract/src/views/contract/sign-authorization/edit/curd.tsx @@ -281,6 +281,7 @@ export function getFormSchemaByAuthRange(params?: any): any { col: { span: 8 }, component: { ...unitComponentProps, + disabled: readOnly, }, rules: [{ required: true, message: '请选择承办部门' }], }, @@ -293,6 +294,7 @@ export function getFormSchemaByAuthRange(params?: any): any { vModel: 'value', class: 'min-w-[180px]', prototype: true, + disabled: readOnly, dict: dict({ async getData(_context) { return filterContractTypes(contractTypeData, '-1'); @@ -306,20 +308,7 @@ export function getFormSchemaByAuthRange(params?: any): any { getComponentRef('ctrTwoType').reloadDict(); // 执行city的select组件的reloadDict()方法,触发“city”重新加载字典 }, }, - conditionalRender: { - match(_context) { - return readOnly; - }, - render({ form }) { - const data = filterContractTypes(contractTypeData, '-1'); - for (const item of data) { - if (item.value === form.ctrType) { - return {item.label}; - } - } - return ; - }, - }, + rules: [{ required: true, message: '请选择合同类别' }], }, ctrTwoType: { title: '二级类别', @@ -330,26 +319,14 @@ export function getFormSchemaByAuthRange(params?: any): any { vModel: 'value', class: 'min-w-[180px]', prototype: true, + disabled: readOnly, dict: dict({ async getData({ form = {} }) { return filterContractTypes(contractTypeData, form.ctrType); }, }), }, - conditionalRender: { - match(_context) { - return readOnly; - }, - render({ form }) { - const data = filterContractTypes(contractTypeData, form.ctrType); - for (const item of data) { - if (item.value === form.ctrTwoType) { - return {item.label}; - } - } - return ; - }, - }, + rules: [{ required: true, message: '请选择二级类别' }], }, price: { title: '标的金额', diff --git a/apps/web-contract/src/views/contract/sign-authorization/edit/index.vue b/apps/web-contract/src/views/contract/sign-authorization/edit/index.vue index 3e1c3401..a2fe352d 100644 --- a/apps/web-contract/src/views/contract/sign-authorization/edit/index.vue +++ b/apps/web-contract/src/views/contract/sign-authorization/edit/index.vue @@ -118,7 +118,10 @@ async function handleSave() { const form = formRef.value.form; const formByAuthRange = formRefByAuthRange.value.form; - console.log('提交表单', form, formBindingByAuthRange); + console.log('提交表单', form, formByAuthRange); + + console.log('contractTypeData', contractTypeData.value); + try { await formRef.value.submit(); await formRefByAuthRange.value.submit(); @@ -143,13 +146,16 @@ async function handleSave() { } } + debugger; + console.log('提交表单', form, formByAuthRange); + // 获取字典数据的name值 for (const item of contractTypeData.value) { - if (item.contrLevelId === form.ctrType) { - form.ctrTypeName = item.contrLevelName; + if (item.contrLevelId === formByAuthRange.ctrType) { + formByAuthRange.ctrTypeName = item.contrLevelName; } - if (item.contrLevelId === form.ctrTwoType) { - form.ctrTwoTypeName = item.contrLevelName; + if (item.contrLevelId === formByAuthRange.ctrTwoType) { + formByAuthRange.ctrTwoTypeName = item.contrLevelName; } } @@ -184,19 +190,19 @@ async function handleSave() { }, RlHtSqConsignCqtype: { consignCqtypeId: '', - contractOneTypeId: form.ctrType, - contractOneTypeName: form.ctrTypeName, - contractTwoTypeId: form.ctrTwoType, - contractTwoTypeName: form.ctrTwoTypeName, + contractOneTypeId: formByAuthRange.ctrType, + contractOneTypeName: formByAuthRange.ctrTypeName, + contractTwoTypeId: formByAuthRange.ctrTwoType, + contractTwoTypeName: formByAuthRange.ctrTwoTypeName, // inputDepartId: '2024', // inputDepartName: 'xxxx', // remark: '', - contractMoneyDown: form.contractMoneyDown, - contractMoneyUp: form.contractMoneyUp, - priceTypeId: form.priceType, + contractMoneyDown: formByAuthRange.contractMoneyDown, + contractMoneyUp: formByAuthRange.contractMoneyUp, + priceTypeId: formByAuthRange.priceType, priceTypeName: getDictObj( DICT_TYPE.contract_currency_unit, - form.priceType, + formByAuthRange.priceType, )?.label, }, RlHtSqConsignDxtype: { diff --git a/apps/web-office/src/views/meeting/config/components/addressor-sort-setting/addressor-sort-edit-modal.vue b/apps/web-office/src/views/meeting/config/components/addressor-sort-setting/addressor-sort-edit-modal.vue index 8fda8dbc..4765999c 100644 --- a/apps/web-office/src/views/meeting/config/components/addressor-sort-setting/addressor-sort-edit-modal.vue +++ b/apps/web-office/src/views/meeting/config/components/addressor-sort-setting/addressor-sort-edit-modal.vue @@ -30,34 +30,28 @@ const formBinding = ref({ initialForm: {}, labelCol: { style: { width: '120px' } }, columns: { - // unitId: { - // title: '选择单位', - // key: 'unitId', - // col: { span: 12 }, - // component: unitComponentProps, - // }, - // userName: { - // title: '选择人员', - // key: 'userId', - // col: { span: 12 }, - // component: { - // name: 'a-input', - // vModel: 'value', - // readOnly: true, - // onClick: () => { - // chooseUserModalApi.open(); - // }, - // }, - // }, name: { - title: '单位/人员名称', + title: '单位/人员选择', key: 'name', component: { name: 'a-input', vModel: 'value', readOnly: true, + onClick: () => { + chooseUserModalApi.open(); + }, }, }, + id: { + title: '单位/人员id', + key: 'id', + component: { + name: 'a-input', + vModel: 'value', + disabled: true, + }, + helper: '无需填写,完成上一步单位/人员选择后自动带出', + }, sort: { title: '发言顺序', key: 'sort', @@ -84,12 +78,24 @@ const currUser = ref({}); function handleChooseUserRowClick(row) { formRef.value?.setFormData({ - userName: row.label, + name: row.EMPLOYEE_NAME, + id: row.ACCOUNT_ID, }); currUser.value = row; chooseUserModalApi.close(); } +function handleChooseUserDeptClick(rows) { + if (rows.length > 0) { + const row = rows[0]; + formRef.value?.setFormData({ + name: row.label, + id: row.key, + }); + chooseUserModalApi.close(); + } +} + const [Modal, modalApi] = useVbenModal({ async onOpenChange(isOpen: boolean) { if (isOpen) { @@ -132,7 +138,12 @@ const [Modal, modalApi] = useVbenModal({ :loading="isConfirmLoading" :title="data.isUpdate ? '修改会议发言人顺序' : '新增会议发言人顺序'" > - +
import { computed, nextTick, onMounted, onUnmounted, reactive, ref } from 'vue'; -import { Page, useVbenModal } from '@vben/common-ui'; +import { useVbenModal } from '@vben/common-ui'; import { MdiExport, MdiRadioChecked, @@ -166,7 +166,7 @@ onUnmounted(() => {
- +