| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784 |
- <template>
- <div class="bid-content-page">
- <div class="bid-container">
- <el-dialog v-model="dialogFormVisible" draggable title="提示信息" width="500" @close="close">
- <el-form label-width="auto" :model="addForm" :rules="rules" ref="formRef" style="max-height: 500px;overflow: auto;">
- <el-form-item label="登记类型">
- <el-select v-model="addForm.type" placeholder="请选择登记类型" value-key="value" @change="handleTypeChange" >
- <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
- </el-select>
- </el-form-item>
- <el-form-item label="项目名称" v-if="addForm.type == '监控中'">
- <el-select v-model="addForm.title" placeholder="请选择项目名称" @change="handleProjectChange" value-key="id">
- <el-option v-for="item in jkList" :key="item.id" :label="item.title" :value="item" />
- </el-select>
- </el-form-item>
- <el-form-item label="项目名称" v-else-if="addForm.type == '投续标'">
- <el-select v-model="addForm.title" placeholder="请选择项目名称" @change="handleProjectChange" value-key="id">
- <el-option v-for="item in txbList" :key="item.id" :label="item.title" :value="item" />
- </el-select>
- </el-form-item>
- <el-form-item label="类似项目名称" prop="title" v-else>
- <el-cascader v-model="adminCascader" :options="adminArea" :show-all-levels="true" @change="handleAdminCascaderChange" style="width: 100%"></el-cascader>
- </el-form-item>
- <!-- <el-form-item label="项目名称" v-else>
- <el-input v-model="addForm.title" autocomplete="off" placeholder="请输入项目名称"/>
- </el-form-item> -->
- <!-- <el-form-item label="中标类型选项">
- <el-switch v-model="finishBidObjectTemp.flag" inline-prompt active-text="从中标结果中选择" inactive-text="手动输入" style="background-color: unset;" @change="handleSwitchChange"/>
- </el-form-item>
- <div v-if="finishBidObjectTemp.flag">
- <el-form-item label="中标项目">
- <el-select v-model="finishBidObject" filterable placeholder="请选择中标项目" style="width: 100%;overflow: auto;" @change="handleChange" value-key="id">
- <el-option v-for="item in finishBidOption" :key="item.id" :label="item.title" :value="item" :title="item.title" style="width: 380px;"/>
- </el-select>
- </el-form-item>
- </div>
- <div v-else> -->
- <div v-if="addForm.type == '新创建'">
- <el-form-item label="是否续标">
- <el-switch v-model="addForm.c_is_xb" inline-prompt active-text="是" inactive-text="否" style="background-color: unset;" @change="handleXBSwitchChange"/>
- </el-form-item>
- </div>
- <el-form-item label="中标结果URL">
- <el-input v-model="finishBidObjectTemp.url" placeholder="请输入中标结果URL"/>
- </el-form-item>
- <!-- </div> -->
- <div v-if="addForm.type != '监控中'">
- <el-form-item label="管理区域" prop="c_glqy">
- <el-cascader ref="areaCascader" v-model="addFormArea" :options="allArea" :show-all-levels="true" @change="handleNodeAreaClick" style="width: 100%"></el-cascader>
- </el-form-item>
- <el-form-item label="投标日期" prop="tb_date">
- <el-date-picker
- style="width: 100%;"
- v-model="addForm.tb_date"
- type="date"
- placeholder="请选择投标日期"
- />
- </el-form-item>
- <el-form-item label="投标报价" prop="tb_money">
- <el-input-number
- style="width: 100%"
- v-model="addForm.tb_money"
- controls-position="right"
- placeholder="请输入投标报价"
- />
- </el-form-item>
- <el-form-item label="招标编号" prop="zb_code">
- <el-input v-model="addForm.zb_code" autocomplete="off" placeholder="请输入招标编号"/>
- </el-form-item>
- <el-form-item label="招标项目名称" prop="zb_name">
- <el-input v-model="addForm.zb_name" autocomplete="off" placeholder="请输入招标项目名称"/>
- </el-form-item>
- <el-form-item label="招标发布机构" prop="zb_org">
- <el-input v-model="addForm.zb_org" autocomplete="off" placeholder="请输入招标发布机构"/>
- </el-form-item>
- <el-form-item label="招标数据来源" prop="zb_source">
- <el-input v-model="addForm.zb_source" autocomplete="off" placeholder="请输入招标数据来源"/>
- </el-form-item>
- <el-form-item label="招标金额" prop="zb_money">
- <el-input-number
- style="width: 100%"
- v-model="addForm.zb_money"
- controls-position="right"
- placeholder="请输入招标金额"
- />
- </el-form-item>
- <el-form-item label="开标发布日期" prop="zb_startdate">
- <el-date-picker
- style="width: 100%;"
- v-model="addForm.zb_startdate"
- type="datetime"
- placeholder="请选择开标发布日期"
- />
- </el-form-item>
- <el-form-item label="开标截止日期" prop="zb_enddate">
- <el-date-picker
- style="width: 100%;"
- v-model="addForm.zb_enddate"
- type="datetime"
- placeholder="请选择开标截止日期"
- />
- </el-form-item>
- <el-form-item label="招标详情URL" prop="zb_url">
- <el-input v-model="addForm.zb_url" autocomplete="off" placeholder="请输入招标详情URL"/>
- </el-form-item>
-
- </div>
- <div v-if="addForm.type != '监控中'">
- <el-form-item label="业态" prop="c_ytfw">
- <el-tree-select
- placeholder="请选择业态"
- v-model="addFormYT"
- :data="ytList"
- collapse-tags
- filterable
- style="width: 100%"
- />
- </el-form-item>
- <el-form-item label="委托类型" prop="c_zgfw">
- <el-radio v-model="addFormZgfw" label="全委">全委</el-radio>
- <el-radio v-model="addFormZgfw" label="单一单委">单一单委</el-radio>
- <el-radio v-model="addFormZgfw" label="多项单委">多项单委</el-radio>
- </el-form-item>
-
- <el-form-item label="服务类型" prop="c_fwlx">
- <el-checkbox-group v-model="addFormFwlx">
- <el-checkbox label="会务"></el-checkbox>
- <el-checkbox label="工程"></el-checkbox>
- <el-checkbox label="绿化"></el-checkbox>
- <el-checkbox label="保安"></el-checkbox>
- <el-checkbox label="保洁"></el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </div>
- </el-form>
- <template #footer>
- <div class="dialog-footer">
- <el-button @click="close" class="btn">取消</el-button>
- <el-button type="primary" class="btn enter-btn" @click="submitForm(formRef)">
- 确认
- </el-button>
- </div>
- </template>
- </el-dialog>
- </div>
- </div>
- </template>
- <script setup lang="ts">
- import { ref,onMounted } from 'vue'
- import moment from 'moment'
- import api from '@/api/common'
- import CONFIG from '@/utils/config'
- import type { FormInstance } from 'element-plus'
- const formRef = ref<FormInstance>()
- const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
- const userName = userInfo?.username =='user_xtw' ? '徐天炜' : userInfo?.username || ''
- const props = defineProps({
- flag: {
- type: Boolean,
- default: false,
- },
- close: {
- type: Function,
- default: () => {},
- }
- })
- interface resultForm {
- [key: string]: any
- }
- const finishObject = ref<resultForm>({})
- const finishProjects = ref<any[]>([])
- const finishTreeProjects = ref<any[]>([])
- const txbList = ref<any[]>([])
- const jkList = ref<any[]>([])
- const ytList = ref<resultForm[]>([])
- const glArea = ref([{} as TreeItem])
- const addFormZgfw = ref('')
- const addFormFwlx = ref([])
- const addFormYT = ref('')
- const addFormArea = ref([])
- interface TreeItem {
- id: string | number
- value: string
- label: string
- children: TreeItem[],
- [key: string]: any
- }
- const areaCascader = ref(null)
- const areaObject = ref({})
- const adminCascader = ref([])
- const adminArea = ref([{} as TreeItem])
- const allArea = ref([{} as TreeItem])
- const finishBidOption = ref([{} as resultForm])
- const jkBidObject = ref<any>(null)
- const txbBidObject = ref<any>(null)
- const finishBidObject = ref<any>(null)
- const finishBidObjectTemp = ref({
- flag:false,
- url:''
- })
- onMounted(() => {
- initData()
- })
- const initData = async () => {
- await getFinishProjects()
- const itemTxbList = await getTypeProjects(CONFIG.COLUMNIDARR[2]) // 投续标项目
- const itemJkList = await getTypeProjects(CONFIG.COLUMNIDARR[6]) // 中标监控项目
- const itemFinishList = await getTypeProjects(CONFIG.COLUMNIDARR[7]) // 已中标项目
- const itemYtList = await getTypeProjects(CONFIG.COLUMNIDARR[8]) // 业态
- const itemGLList = await getTypeProjects(CONFIG.COLUMNIDARR[9]) // 管理区域
- console.log(itemFinishList)
- finishBidOption.value = itemFinishList.data || []
- txbList.value = []
- jkList.value = []
- glArea.value = []
- allArea.value = []
- ytList.value = []
- itemTxbList.data.filter((item: any) => {
- const json = JSON.parse(item.c_xmjd_json)
- if(json.length > 0 && json[json.length - 1].xmjd < 6){
- txbList.value.push(item)
- }
- })
- itemJkList.data.filter((item: any) => {
- const flag = item.c_sfzb
- if(flag == false){// 已中标
- jkList.value.push(item)
- }
- })
- ytList.value = itemYtList.data.map((item: any) => ({
- ...item,
- label: item.c_yt_name,
- value: item.c_yt_name,
- children: item.children || []
- }))
- // glArea.value = itemGLList.data
- // .filter((item: any) => item?.c_part_name && item?.c_district_code?.startsWith('3101')) // 过滤空、null、undefined、''
- // .map((item: any) => ({
- // label: item.c_part_name,
- // value: item.c_part_name,
- // children: []
- // }))
- // const uniqueGlTree = Array.from(
- // new Map(glArea.value.map(item => [item.value, item])).values()
- // )
- // glArea.value = uniqueGlTree
- adminArea.value = itemGLList.data.filter((item: any) => item?.c_district_name && item?.c_district_code?.startsWith('310')) // 过滤空、null、undefined、''
- .map((item: any) => ({
- label: item.c_district_name,
- value: item.c_district_name,
- children: finishTreeProjects.value.filter((item2: any) => item.c_district_name.includes(item2.c_sq))
- }))
- const uniqueTree = Array.from(
- new Map(adminArea.value.map(item => [item.value, item])).values()
- )
- adminArea.value = uniqueTree
- allArea.value = buildAreaTree(itemGLList.data)
- console.log(itemFinishList)
- }
- const dialogFormVisible = props.flag
- const close = () => {
- props.close()
- }
- const getFinishProjects = async () => {
- const params: any = {
- columnId: CONFIG.COLUMNIDARR[0], //原项目数据
- orderBy: JSON.stringify([{ field: "c_zgxmhtdqrq", orderByType: 1 }]),
- states: '0',// 只看草稿箱
- pageSize: 9999,
- page: 0
- }
- await api.getDmsDataList(params).then(res => {
- if ((res as any).code === 200) {
- finishProjects.value = (res as any).content.data
- finishTreeProjects.value = buildTree(finishProjects.value)
-
- }else{
- finishProjects.value = []
- }
- })
- }
- const buildTree = (data: any[]): any[] => {
- const map = new Map()
- const tree: any[] = []
- data.forEach((item: any) => {
- map.set(item.c_guid, {
- ...item,
- value: item.id,
- label: item.title,
- children: []
- })
- })
- data.forEach((item: any) => {
- const node = map.get(item.c_guid)
- if (item.c_father_code && map.has(item.c_father_code)) {
- // map.get(item.c_father_code).children.push(node)
- } else {
- tree.push(node)
- }
- })
- return tree
- }
- const typeOptions = ref([
- {
- value: '新创建',
- label: '新创建',
- },
- {
- value: '监控中',
- label: '监控中',
- },
- {
- value: '投续标',
- label: '投续标',
- },
- ])
- const addForm = ref({
- id: '',
- type: '新创建',
- title: '',
- tb_date:'',
- tb_money:'',
- zb_code:'',
- zb_name:'',
- zb_org:'',
- zb_source:'',
- zb_money:'',
- zb_startdate:'',
- zb_enddate:'',
- zb_url:'',
- c_is_xb:false,
- })
- const rules = ref({
-
- })
- // interface ProjectItem {
- // [key: string]: any
- // }
- const submitForm = (formEl: FormInstance | undefined) => {
- if (!formEl) return
- formEl.validate(async (valid) => {
- if (valid) {
- if(addForm.value.type == '监控中'){
- //流程
- const id = 7 // 固定进度数值
- const rwlcqd = JSON.parse(txbBidObject.value.rwlcqd || '[]')
- rwlcqd.find((p: any) => p.id == id).done = true
- rwlcqd.find((p: any) => p.id == id).create_time = moment().format('YYYY-MM-DD HH:mm')
- rwlcqd.find((p: any) => p.id == id).username = userName
- rwlcqd.find((p: any) => p.id == id).userid = userInfo?.id || ''
- rwlcqd.find((p: any) => p.id == id).type = 0
- // 进度
- let xmjd_json = JSON.parse(txbBidObject.value.c_xmjd_json || '[]');
- xmjd_json[5].create_time = moment().format('YYYY-MM-DD HH:mm')
- xmjd_json[5].username = userName
- xmjd_json[5].userid = userInfo?.id || ''
- xmjd_json[5].type = 0
- if(!xmjd_json[6]){
- xmjd_json.push({xmjd: id, type: 1, create_time: '', username: '', userid: ''})
- }
- const content = JSON.stringify({
- id: txbBidObject.value.id,
- rwlcqd:rwlcqd,
- c_xmjd_json:xmjd_json
- })
- updateProject(CONFIG.COLUMNIDARR[2],CONFIG.MODELIDARR[0],content)
- // 修改中标监控
- const steps = [
- { n: 1, label: '预警触发'},
- { n: 2, label: '投/续标准备'},
- { n: 3, label: '招标监控'},
- { n: 4, label: '标书制作'},
- { n: 5, label: '投标提交'},
- { n: 6, label: '开标监控'},
- { n: 7, label: '确认中标'},
- ]
- let json = xmjd_json.map((item:any) => {
- return {
- create_time: item.create_time ? item.create_time : moment().format('YYYY-MM-DD HH:mm'),
- desc:steps.find((s:any) => s.n == item.xmjd)?.label || '',
- username:item.username ? item.username : userName,
- userid:item.userid ? item.userid : userInfo?.id || '',
- }
- })
- const content2 = JSON.stringify({
- id: jkBidObject.value.id || '',
- c_gljg: finishBidObjectTemp.value?.flag ? finishBidObject.value?.id : '',
- c_jgjk_url: finishBidObjectTemp.value?.flag ? finishBidObject.value?.c_detail_url : finishBidObjectTemp.value?.url || '',
- c_lcsjx:json || '',
- c_sfzb:true,
- c_type:"中标登记",
- c_enable: false
- })
- updateProject(CONFIG.COLUMNIDARR[6],CONFIG.MODELIDARR[3],content2)
- }else if(addForm.value.type == '投续标'){
- //流程
- const rwlcqd = JSON.parse(selectedObject.value.rwlcqd || '[]')
- rwlcqd.forEach((p: any) => {
- if(!p.danger && p.id !=8){//未处理的流程全部重新处理
- p.done = true,
- p.create_time = moment().format('YYYY-MM-DD HH:mm'),
- p.username = userName,
- p.userid = userInfo?.id || '',
- p.type = 0
- }
- })
- let xmjd_json = JSON.parse(selectedObject.value.c_xmjd_json || '[]');
- const curNumber = xmjd_json[xmjd_json.length - 1].xmjd
- for(let i = curNumber; i < 8; i++){
- if(i == curNumber){
- xmjd_json[i-1].create_time = moment().format('YYYY-MM-DD HH:mm')
- xmjd_json[i-1].username = userName
- xmjd_json[i-1].userid = userInfo?.id || ''
- xmjd_json[i-1].type = 0
- }else{
- if( i == 7){
- xmjd_json.push({xmjd: i, type: 1, create_time: '', username: '', userid: ''})
- }else{
- xmjd_json.push({xmjd: i, type: 0, create_time: moment().format('YYYY-MM-DD HH:mm'), username: userName, userid: userInfo?.id || ''})
- }
- }
- }
- const steps = [
- { n: 1, label: '预警触发'},
- { n: 2, label: '投/续标准备'},
- { n: 3, label: '招标监控'},
- { n: 4, label: '标书制作'},
- { n: 5, label: '投标提交'},
- { n: 6, label: '开标监控'},
- { n: 7, label: '确认中标'},
- ]
- let json = xmjd_json.map((item:any) => {
- return {
- create_time: item.create_time ? item.create_time : moment().format('YYYY-MM-DD HH:mm'),
- desc:steps.find((s:any) => s.n == item.xmjd)?.label || '',
- username:item.username ? item.username : userName,
- userid:item.userid ? item.userid : userInfo?.id || '',
- }
- })
- // 开标监控
- let kbFormData = {
- title: selectedObject.value.title,
- content: selectedObject.value.content,
- c_zbbh: selectedObject.value.c_xgzb ? selectedObject.value.c_xgzb : addForm.value.zb_code,
- c_sfzb: true,
- c_jgjk_url: finishBidObjectTemp.value?.url || '',
- c_kbsj: selectedObject.value.zbjzsj ? selectedObject.value.zbjzsj : addForm.value.zb_enddate,
- c_xmmc: selectedObject.value.c_xmbt,
- c_zbtjr: selectedObject.value.tbrq ? selectedObject.value.tbrq : addForm.value.tb_date,
- c_tbbj: selectedObject.value.tbbj ? selectedObject.value.tbbj : addForm.value.tb_money,
- c_glxm: selectedObject.value.xmbh,
- c_lcsjx: json || '',
- c_type: '中标登记',
- c_enable: false
- }
- console.log(kbFormData)
- const res = await addContentParams(kbFormData,CONFIG.COLUMNIDARR[6],CONFIG.MODELIDARR[3])
- let desc = {
- zb_project_code: selectedObject.value.c_xgzb ? selectedObject.value.c_xgzb : addForm.value.zb_code,
- zb_source_name: addForm.value.zb_source,
- zb_project_name: addForm.value.zb_name,
- zb_budget_amount: selectedObject.value.tbbj ? selectedObject.value.tbbj : addForm.value.tb_money,
- zb_detail_url: finishBidObjectTemp.value?.url || '',
- zb_publish_time: selectedObject.value.zbkssj ? selectedObject.value.zbkssj : addForm.value.zb_startdate,
- zb_bid_deadline: selectedObject.value.zbjzsj ? selectedObject.value.zbjzsj : addForm.value.zb_enddate,
- zb_author: userName
- }
- let areaArr = (areaObject.value as any)?.pathLabels || []
- let tbFormData = {
- id: selectedObject.value.id || '',
- c_zgfw: selectedObject.value.c_zgfw ? selectedObject.value.c_zgfw : addFormZgfw.value,
- c_xgzb: selectedObject.value.c_xgzb ? selectedObject.value.c_xgzb : addForm.value.zb_code,
- c_xgjk: (res as any).content || '',
- c_xmbtqc: selectedObject.value.c_xmbt,
- c_qx: selectedObject.value.c_qx ? selectedObject.value.c_qx : areaArr[0] || '',
- c_xmbt: selectedObject.value.c_xmbt,
- c_xmjd_json:xmjd_json,
- zbxmbh: selectedObject.value.c_xgzb ? selectedObject.value.c_xgzb : addForm.value.zb_code,
- tbrq: selectedObject.value.tbrq ? selectedObject.value.tbrq : addForm.value.tb_date,
- tbbj: selectedObject.value.tbbj ? selectedObject.value.tbbj : addForm.value.tb_money,
- zbkssj: selectedObject.value.zbkssj ? selectedObject.value.zbkssj : addForm.value.zb_startdate,
- zbjzsj: selectedObject.value.zbjzsj ? selectedObject.value.zbjzsj : addForm.value.zb_enddate,
- rwlcqd: rwlcqd,
- zbmsxx: selectedObject.value.zbmsx ? selectedObject.value.zbmsx : desc,
- c_ytfw: selectedObject.value.ytfxw ? selectedObject.value.ytfxw : addFormYT.value,
- c_fwlx: selectedObject.value.fwlx ? selectedObject.value.fwlx : addFormFwlx.value.toString(),
- c_glqy: selectedObject.value.glqy ? selectedObject.value.glqy : areaArr[1] || '',
- }
- updateProject(CONFIG.COLUMNIDARR[2],CONFIG.MODELIDARR[0],JSON.stringify(tbFormData))
- // console.log("其他")
- }else{
- console.log("其他")
- //流程
- const rwlcqd = CONFIG.TASKLIST
- rwlcqd.forEach((p: any) => {
- if(!p.danger && p.id !=8){//未处理的流程全部重新处理
- p.done = true,
- p.create_time = moment().format('YYYY-MM-DD HH:mm'),
- p.username = userName,
- p.userid = userInfo?.id || '',
- p.type = 0
- }
- })
- let xmjd_json = [];
- for(let i = 1; i < 8; i++){
- if( i == 7){
- xmjd_json.push({xmjd: i, type: 1, create_time: '', username: '', userid: ''})
- }else{
- xmjd_json.push({xmjd: i, type: 0, create_time: moment().format('YYYY-MM-DD HH:mm'), username: userName, userid: userInfo?.id || ''})
- }
- }
- const steps = [
- { n: 1, label: '预警触发'},
- { n: 2, label: '投/续标准备'},
- { n: 3, label: '招标监控'},
- { n: 4, label: '标书制作'},
- { n: 5, label: '投标提交'},
- { n: 6, label: '开标监控'},
- { n: 7, label: '确认中标'},
- ]
- let json = xmjd_json.map((item:any) => {
- return {
- create_time: item.create_time ? item.create_time : moment().format('YYYY-MM-DD HH:mm'),
- desc:steps.find((s:any) => s.n == item.xmjd)?.label || '',
- username:item.username ? item.username : userName,
- userid:item.userid ? item.userid : userInfo?.id || '',
- }
- })
- // 开标监控
- let kbFormData = {
- title: finishObject.value.title,
- content: finishObject.value.content,
- c_zbbh: addForm.value.zb_code,
- c_sfzb: true,
- c_jgjk_url: finishBidObjectTemp.value?.url || '',
- c_kbsj: addForm.value.zb_enddate,
- c_xmmc: finishObject.value.c_xmmc,
- c_zbtjr: addForm.value.tb_date,
- c_tbbj: addForm.value.tb_money,
- c_glxm: finishObject.value.c_guid,
- c_lcsjx: json || '',
- c_type: '中标登记',
- c_enable: false
- }
- console.log(kbFormData)
- const res = await addContentParams(kbFormData,CONFIG.COLUMNIDARR[6],CONFIG.MODELIDARR[3])
- let desc = {
- zb_project_code: addForm.value.zb_code,
- zb_source_name: addForm.value.zb_source,
- zb_project_name: addForm.value.zb_name,
- zb_budget_amount: addForm.value.tb_money,
- zb_detail_url: finishBidObjectTemp.value?.url || '',
- zb_publish_time: addForm.value.zb_startdate,
- zb_bid_deadline: addForm.value.zb_enddate,
- zb_author: userName
- }
- let areaArr = (areaObject.value as any)?.pathLabels || []
- let tbFormData = {
- title: finishObject.value.title,
- content: finishObject.value.content,
- c_sfzb: finishObject.value.c_htqyjf,
- c_zgfw: addFormZgfw.value ? addFormZgfw.value : finishObject.value.c_wtfs || '',
- c_kssj: moment(finishObject.value.c_zgxmhtksrq).format('YYYY-MM-DD HH:mm') || '',
- c_dqsj: moment(finishObject.value.c_zgxmhtdqrq).format('YYYY-MM-DD HH:mm') || '',
- xmbh: finishObject.value.c_guid,
- c_nh: finishObject.value.c_nhhtsr || '',
- c_is_xb: addForm.value.c_is_xb,
- c_xgzb: addForm.value.zb_code,
- c_xgjk: (res as any).content || '',
- c_xmbtqc: finishObject.value.c_xmmc,
- c_qx: areaArr[0] ? areaArr[0] : finishObject.value.c_sq || '',
- c_xmbt: finishObject.value.c_xmmc,
- c_xmjd_json:xmjd_json,
- zbxmbh: addForm.value.zb_code,
- tbrq: addForm.value.tb_date,
- tbbj: addForm.value.tb_money,
- zbkssj: addForm.value.zb_startdate,
- zbjzsj: addForm.value.zb_enddate,
- rwlcqd: rwlcqd,
- zbmsxx: desc,
- c_ytfw: addFormYT.value,
- c_fwlx: addFormFwlx.value.toString(),
- c_glqy: areaArr[1] ? areaArr[1] : finishObject.value.c_glqynbkj || '',
- }
- await addContentParams(tbFormData,CONFIG.COLUMNIDARR[2],CONFIG.MODELIDARR[0])
- }
- } else {
- // console.log('error submit!')
- }
-
- close()
- })
- }
- const addContentParams = async (formData: any,columnId:number,modelId:number) => {
- const params = {
- content: JSON.stringify(formData),
- columnId: columnId,
- modelId: modelId,
- }
- const res = await api.addContent(params)
- return res
- }
- const handleTypeChange = (val: any) => {
- addForm.value.title = ''
- addForm.value.type = val || ''
- }
- const selectedObject = ref<any>({})
- const handleProjectChange = async (val: any) => {
- addForm.value.title = val.title || ''
- jkBidObject.value = null
- txbBidObject.value = null
- finishBidObject.value = null
- if(addForm.value.type == '监控中'){
- jkBidObject.value = val
- const res = await getTxbBidContent(CONFIG.COLUMNIDARR[2],val.id,"c_xgjk")
- txbBidObject.value = res || {}
- }else{
- selectedObject.value = val
- }
- console.log("项目名称:", val)
- }
- const getTypeProjects = async (columnId:number) => {
- const params: any = {
- columnId: columnId,
- orderBy: JSON.stringify([{ field: "update_time", orderByType: 2 }]),
- states: '0,1,2,3,4',
- pageSize: 9999,
- page: 0
- }
- const res = await getDmsDataList(params)
- return (res as any).content
- }
- const getDmsDataList = async (params: any) => {
- return await api.getDmsDataList(params)
- }
- const updateProject = async (columnId:number,modelId:number,content:string) => {
- const params: any = {
- columnId: columnId,
- modelId: modelId,
- content: content,
- }
- // console.log(params)
- const res = await api.updateContent(params)
- if ((res as any).code === 200) {
- // ElMessage.success('添加成功')
- initData()
- }else{
- // ElMessage.error('添加失败')
- }
- }
- // const handleSwitchChange = (val: any) => {
- // finishBidObjectTemp.value.flag = val
- // finishBidObjectTemp.value.url = ''
- // finishObject.value = {}
- // }
- // const handleChange = (val: any) => {
- // finishBidObject.value = val
- // }
- const handleXBSwitchChange = (val: any) => {
- addForm.value.c_is_xb = val
- console.log(val)
- }
- // 获取投续标内容
- const getTxbBidContent = async (columnId:number,search:string,type:string) => {
- const params: any = {
- columnId: columnId,
- orderBy: JSON.stringify([{ field: "update_time", orderByType: 2 }]),
- states: '0,1,2,3,4',
- pageSize: 1,
- page: 0
- }
- if (search) {
- params.search = JSON.stringify([
- ...(params.search ? JSON.parse(params.search) : []),
- {
- field: type,
- searchType: 1,
- content: { value: search },
- },
- ]);
- }
- const res = await getDmsDataList(params)
- return (res as any).content.data[0]
- }
- const buildAreaTree = (flatList: any[]) => {
- const districtMap = new Map<string, TreeItem>()
- const filteredList = flatList.filter(item => item?.c_district_code?.startsWith('3101'))
- for (const item of filteredList) {
- const districtCode = item.c_district_code
- const districtName = item.c_district_name
- if (!districtCode || !districtName) continue
- let districtNode = districtMap.get(districtCode)
- if (!districtNode) {
- districtNode = {
- id: districtCode,
- label: districtName,
- value: districtCode,
- children: [],
- ...item
- }
- districtMap.set(districtCode, districtNode as TreeItem)
- }
- const partCode = item.c_part_code
- const partName = item.c_part_name
- if (!partCode || !partName) continue
- const partMap = new Map<string, TreeItem>()
- for (const child of (districtNode?.children || []) as TreeItem[]) {
- partMap.set(child.value, child)
- }
- let partNode = partMap.get(partCode)
- if (!partNode) {
- partNode = {
- id: partCode,
- label: partName,
- value: partCode,
- children: [],
- ...item
- }
- districtNode?.children?.push(partNode as TreeItem)
- }
- }
- return Array.from(districtMap.values())
- }
- const handleNodeAreaClick = (value: any[]) => {
- console.log('选中的值数组:', value)
- const nodes = (areaCascader.value as any)?.getCheckedNodes?.() || []
- if(nodes.length) {
- const targetNode = nodes[nodes.length - 1]
- areaObject.value = targetNode
- }
-
- }
- const handleAdminCascaderChange = (val: any) => {
- const tempObj = finishTreeProjects.value.filter((item: any) => item.id.includes(val[1]))[0]
- finishObject.value = tempObj
- console.log(tempObj)
- }
- </script>
- <style scoped>
- .bid-content-page {
- width: 100%;
- }
- .bid-container{
- height: calc(100vh - 180px);
- overflow-y: auto;
- }
- </style>
|