This commit is contained in:
吴红兵
2026-03-05 20:02:15 +08:00
parent 450e1be7bd
commit 25f31978e5
2 changed files with 124 additions and 72 deletions

140
auto-imports.d.ts vendored
View File

@@ -1,73 +1,73 @@
// Generated by 'unplugin-auto-import' // Generated by 'unplugin-auto-import'
export {}; export {}
declare global { declare global {
const EffectScope: typeof import('vue')['EffectScope']; const EffectScope: typeof import('vue')['EffectScope']
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']; const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
const computed: typeof import('vue')['computed']; const computed: typeof import('vue')['computed']
const createApp: typeof import('vue')['createApp']; const createApp: typeof import('vue')['createApp']
const createPinia: typeof import('pinia')['createPinia']; const createPinia: typeof import('pinia')['createPinia']
const customRef: typeof import('vue')['customRef']; const customRef: typeof import('vue')['customRef']
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']; const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
const defineComponent: typeof import('vue')['defineComponent']; const defineComponent: typeof import('vue')['defineComponent']
const defineStore: typeof import('pinia')['defineStore']; const defineStore: typeof import('pinia')['defineStore']
const effectScope: typeof import('vue')['effectScope']; const effectScope: typeof import('vue')['effectScope']
const getActivePinia: typeof import('pinia')['getActivePinia']; const getActivePinia: typeof import('pinia')['getActivePinia']
const getCurrentInstance: typeof import('vue')['getCurrentInstance']; const getCurrentInstance: typeof import('vue')['getCurrentInstance']
const getCurrentScope: typeof import('vue')['getCurrentScope']; const getCurrentScope: typeof import('vue')['getCurrentScope']
const h: typeof import('vue')['h']; const h: typeof import('vue')['h']
const inject: typeof import('vue')['inject']; const inject: typeof import('vue')['inject']
const isProxy: typeof import('vue')['isProxy']; const isProxy: typeof import('vue')['isProxy']
const isReactive: typeof import('vue')['isReactive']; const isReactive: typeof import('vue')['isReactive']
const isReadonly: typeof import('vue')['isReadonly']; const isReadonly: typeof import('vue')['isReadonly']
const isRef: typeof import('vue')['isRef']; const isRef: typeof import('vue')['isRef']
const mapActions: typeof import('pinia')['mapActions']; const mapActions: typeof import('pinia')['mapActions']
const mapGetters: typeof import('pinia')['mapGetters']; const mapGetters: typeof import('pinia')['mapGetters']
const mapState: typeof import('pinia')['mapState']; const mapState: typeof import('pinia')['mapState']
const mapStores: typeof import('pinia')['mapStores']; const mapStores: typeof import('pinia')['mapStores']
const mapWritableState: typeof import('pinia')['mapWritableState']; const mapWritableState: typeof import('pinia')['mapWritableState']
const markRaw: typeof import('vue')['markRaw']; const markRaw: typeof import('vue')['markRaw']
const nextTick: typeof import('vue')['nextTick']; const nextTick: typeof import('vue')['nextTick']
const onActivated: typeof import('vue')['onActivated']; const onActivated: typeof import('vue')['onActivated']
const onBeforeMount: typeof import('vue')['onBeforeMount']; const onBeforeMount: typeof import('vue')['onBeforeMount']
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']; const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']; const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']; const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']; const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
const onDeactivated: typeof import('vue')['onDeactivated']; const onDeactivated: typeof import('vue')['onDeactivated']
const onErrorCaptured: typeof import('vue')['onErrorCaptured']; const onErrorCaptured: typeof import('vue')['onErrorCaptured']
const onMounted: typeof import('vue')['onMounted']; const onMounted: typeof import('vue')['onMounted']
const onRenderTracked: typeof import('vue')['onRenderTracked']; const onRenderTracked: typeof import('vue')['onRenderTracked']
const onRenderTriggered: typeof import('vue')['onRenderTriggered']; const onRenderTriggered: typeof import('vue')['onRenderTriggered']
const onScopeDispose: typeof import('vue')['onScopeDispose']; const onScopeDispose: typeof import('vue')['onScopeDispose']
const onServerPrefetch: typeof import('vue')['onServerPrefetch']; const onServerPrefetch: typeof import('vue')['onServerPrefetch']
const onUnmounted: typeof import('vue')['onUnmounted']; const onUnmounted: typeof import('vue')['onUnmounted']
const onUpdated: typeof import('vue')['onUpdated']; const onUpdated: typeof import('vue')['onUpdated']
const provide: typeof import('vue')['provide']; const provide: typeof import('vue')['provide']
const reactive: typeof import('vue')['reactive']; const reactive: typeof import('vue')['reactive']
const readonly: typeof import('vue')['readonly']; const readonly: typeof import('vue')['readonly']
const ref: typeof import('vue')['ref']; const ref: typeof import('vue')['ref']
const resolveComponent: typeof import('vue')['resolveComponent']; const resolveComponent: typeof import('vue')['resolveComponent']
const resolveDirective: typeof import('vue')['resolveDirective']; const resolveDirective: typeof import('vue')['resolveDirective']
const setActivePinia: typeof import('pinia')['setActivePinia']; const setActivePinia: typeof import('pinia')['setActivePinia']
const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']; const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
const shallowReactive: typeof import('vue')['shallowReactive']; const shallowReactive: typeof import('vue')['shallowReactive']
const shallowReadonly: typeof import('vue')['shallowReadonly']; const shallowReadonly: typeof import('vue')['shallowReadonly']
const shallowRef: typeof import('vue')['shallowRef']; const shallowRef: typeof import('vue')['shallowRef']
const storeToRefs: typeof import('pinia')['storeToRefs']; const storeToRefs: typeof import('pinia')['storeToRefs']
const toRaw: typeof import('vue')['toRaw']; const toRaw: typeof import('vue')['toRaw']
const toRef: typeof import('vue')['toRef']; const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']; const toRefs: typeof import('vue')['toRefs']
const triggerRef: typeof import('vue')['triggerRef']; const triggerRef: typeof import('vue')['triggerRef']
const unref: typeof import('vue')['unref']; const unref: typeof import('vue')['unref']
const useAttrs: typeof import('vue')['useAttrs']; const useAttrs: typeof import('vue')['useAttrs']
const useCssModule: typeof import('vue')['useCssModule']; const useCssModule: typeof import('vue')['useCssModule']
const useCssVars: typeof import('vue')['useCssVars']; const useCssVars: typeof import('vue')['useCssVars']
const useLink: typeof import('vue-router')['useLink']; const useLink: typeof import('vue-router')['useLink']
const useRoute: typeof import('vue-router')['useRoute']; const useRoute: typeof import('vue-router')['useRoute']
const useRouter: typeof import('vue-router')['useRouter']; const useRouter: typeof import('vue-router')['useRouter']
const useSlots: typeof import('vue')['useSlots']; const useSlots: typeof import('vue')['useSlots']
const watch: typeof import('vue')['watch']; const watch: typeof import('vue')['watch']
const watchEffect: typeof import('vue')['watchEffect']; const watchEffect: typeof import('vue')['watchEffect']
const watchPostEffect: typeof import('vue')['watchPostEffect']; const watchPostEffect: typeof import('vue')['watchPostEffect']
const watchSyncEffect: typeof import('vue')['watchSyncEffect']; const watchSyncEffect: typeof import('vue')['watchSyncEffect']
} }

View File

@@ -138,7 +138,7 @@
<!-- 部门采购会议纪要预算超过2000元必须上传不区分部门自行采购/学校统一采购 --> <!-- 部门采购会议纪要预算超过2000元必须上传不区分部门自行采购/学校统一采购 -->
<el-row :gutter="16" v-if="showPurchaseDetailBlocks && dataForm.budget != null && dataForm.budget >= BUDGET_DEPT_SELF_MEETING_MINUTES"> <el-row :gutter="16" v-if="showPurchaseDetailBlocks && dataForm.budget != null && dataForm.budget >= BUDGET_DEPT_SELF_MEETING_MINUTES">
<el-col :span="8" class="mb12"> <el-col :span="8" class="mb12">
<el-form-item label="部门采购会议纪要" prop="deptSelfMeetingMinutes"> <el-form-item label="部门采购会议纪要" prop="deptSelfMeetingMinutes" :required="dataForm.budget >= BUDGET_DEPT_SELF_MEETING_MINUTES">
<upload-file <upload-file
v-model="dataForm.deptSelfMeetingMinutes" v-model="dataForm.deptSelfMeetingMinutes"
:limit="1" :limit="1"
@@ -391,6 +391,58 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 工程类委托采购中心采购:需求模板 -->
<el-col
:span="8"
class="mb12"
v-if="isEntrustCenterChannel && dataForm.entrustCenterType === 'other' && categoryCodePath && categoryCodePath[0] === 'B'"
>
<el-form-item label="需求模板" prop="purchaseRequirementTemplate" required>
<upload-file
v-model="dataForm.purchaseRequirementTemplate"
:limit="1"
:file-type="['doc', 'docx']"
:data="{ fileType: FILE_TYPE_MAP.purchaseRequirementTemplate }"
upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('purchaseRequirementTemplate')"
/>
<el-button
type="primary"
link
icon="Download"
size="small"
@click="downloadTemplate('purchase_requirement')"
style="margin-top: 8px; display: inline-block"
>下载《表1需求模板》模版
</el-button>
</el-form-item>
</el-col>
<!-- 服务类委托采购中心采购(非特殊品目):需求模板 -->
<el-col
:span="8"
class="mb12"
v-if="isEntrustCenterChannel && dataForm.entrustCenterType === 'other' && categoryCodePath && categoryCodePath[0] === 'C'"
>
<el-form-item label="需求模板" prop="purchaseRequirementTemplate" required>
<upload-file
v-model="dataForm.purchaseRequirementTemplate"
:limit="1"
:file-type="['doc', 'docx']"
:data="{ fileType: FILE_TYPE_MAP.purchaseRequirementTemplate }"
upload-file-url="/purchase/purchasingfiles/upload"
:disabled="flowFieldDisabled('purchaseRequirementTemplate')"
/>
<el-button
type="primary"
link
icon="Download"
size="small"
@click="downloadTemplate('purchase_requirement')"
style="margin-top: 8px; display: inline-block"
>下载《表1需求模板》模版
</el-button>
</el-form-item>
</el-col>
<el-col :span="8" class="mb12" v-if="showAutoInviteSelect"> <el-col :span="8" class="mb12" v-if="showAutoInviteSelect">
<el-form-item label="是否有推荐供应商" prop="hasSupplier"> <el-form-item label="是否有推荐供应商" prop="hasSupplier">
<el-radio-group v-model="dataForm.hasSupplier" :disabled="flowFieldDisabled('hasSupplier')"> <el-radio-group v-model="dataForm.hasSupplier" :disabled="flowFieldDisabled('hasSupplier')">
@@ -1637,7 +1689,7 @@ const dataRules = reactive({
deptSelfMeetingMinutes: [ deptSelfMeetingMinutes: [
{ {
validator: (_rule: any, value: any, callback: (e?: Error) => void) => { validator: (_rule: any, value: any, callback: (e?: Error) => void) => {
if (dataForm.budget != null && dataForm.budget >= BUDGET_DEPT_SELF_MEETING_MINUTES) { if (dataForm.budget != null && dataForm.budget >= BUDGET_DEPT_SELF_MEETING_MINUTES.value) {
if (!value || (Array.isArray(value) && value.length === 0) || (typeof value === 'string' && !value.trim())) { if (!value || (Array.isArray(value) && value.length === 0) || (typeof value === 'string' && !value.trim())) {
callback(new Error('请上传部门采购会议纪要')); callback(new Error('请上传部门采购会议纪要'));
return; return;