| | |
| | | <div style="margin-bottom: 50px"> |
| | | <div class="fTop"> |
| | | <span style="font-weight: 600">固定选用部分</span> |
| | | <el-button type="primary" style="width: 100px" @click="chooseExpert('选取专家')">选取专家</el-button> |
| | | <el-button type="primary" :disabled="state.info.step == 4" style="width: 100px" @click="chooseExpert('选取专家')">选取专家</el-button> |
| | | </div> |
| | | <el-table v-loading="fLoading" :data="fixedDataList" :border="true" ref="fTableRef" style="width: 100%;"> |
| | | <el-table-column label="姓名" prop="name" align="center" /> |
| | |
| | | <el-table-column label="专业领域" prop="domain" align="center" /> |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" @click="delF(scope.row)" >删除</el-button> |
| | | <el-button link type="primary" @click="delF(scope.row)" :disabled="state.info.step == 4">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | style="width: 100%" |
| | | v-model="expertType" |
| | | :options="domainList" |
| | | :props="{ expandTrigger: 'hover',value: 'id',label: 'classifyName',multiple: true }" |
| | | :props="{ expandTrigger: 'hover',value: 'classifyName',label: 'classifyName',multiple: true }" |
| | | @change="professionChange" |
| | | collapse-tags |
| | | collapse-tags-tooltip |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item style="float: right;"> |
| | | <el-button style="width: 100px;margin-right: -32px;" type="primary" @click="random">随机抽取</el-button> |
| | | <el-button style="width: 100px;margin-right: -32px;" :disabled="state.info.step == 4" type="primary" @click="random">随机抽取</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-table-column label="专业领域" prop="domain" align="center" /> |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" @click="delR(scope.row)" >删除</el-button> |
| | | <el-button link type="primary" @click="delR(scope.row)" :disabled="state.info.step == 4">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | saveData: [], |
| | | delData: [] |
| | | }, |
| | | info: {}, |
| | | levelList: [ |
| | | { |
| | | id: 1, |
| | |
| | | if(res.code == 200){ |
| | | fixedDataList.value = res.data.projectExpertCheckResp.filter(item => item.selectionMode === 1) |
| | | randomDataList.value = res.data.projectExpertCheckResp.filter(item => item.selectionMode === 2) |
| | | state.info = res.data |
| | | console.log('res',fixedDataList.value) |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | |
| | | <el-input |
| | | v-model.trim="queryParams.name" |
| | | placeholder="姓名" |
| | | clearable |
| | | style="width: 250px" |
| | | /> |
| | | </el-form-item> |
| | |
| | | <el-input |
| | | v-model.trim="queryParams.phone" |
| | | placeholder="手机号" |
| | | clearable |
| | | style="width: 250px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="等级"> |
| | | <el-select v-model="queryParams.ratingLevel" style="width: 250px" placeholder="等级" > |
| | | <el-select v-model="queryParams.ratingLevel" clearable style="width: 250px" placeholder="等级" > |
| | | <el-option |
| | | v-for="item in levelList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="专业领域"> |
| | | <el-cascader |
| | | clearable |
| | | style="width: 100%" |
| | | v-model="expertType" |
| | | :options="domainList" |
| | | :props="{ expandTrigger: 'hover',value: 'id',label: 'classifyName' }" |
| | | :props="{ expandTrigger: 'hover',value: 'classifyName',label: 'classifyName' }" |
| | | @change="professionChange" |
| | | > |
| | | </el-cascader> |
| | |
| | | |
| | | const professionChange=(value)=> { |
| | | console.log(value,'val') |
| | | data.queryParams.bigClassify = value[0] |
| | | data.queryParams.smallClassify = value[1] |
| | | data.queryParams.domain = value[1] |
| | | } |
| | | |
| | | defineExpose({ |
| | |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" :disabled="state.dataForm.state == 2" v-if="scope.row.teamLeader === 1" @click="scope.row.teamLeader = 0">取消组长</el-button> |
| | | <el-button link type="primary" :disabled="state.dataForm.state == 2" v-else @click="scope.row.teamLeader = 1">设为组长</el-button> |
| | | <el-button link type="primary" :disabled="state.dataForm.state >= 2 " v-if="scope.row.teamLeader === 1" @click="scope.row.teamLeader = 0">取消组长</el-button> |
| | | <el-button link type="primary" :disabled="state.dataForm.state >= 2" v-else @click="scope.row.teamLeader = 1">设为组长</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | if(state.dataForm.state == 2){ |
| | | dialogVisible.value = true |
| | | }else { |
| | | ElMessageBox.confirm( |
| | | '生成后不可更改,确定生成审批单?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then( async() => { |
| | | const data = { |
| | | id: state.projectId, |
| | | step: 3, |
| | |
| | | } |
| | | const res = await choose(data); |
| | | if(res.code == 200){ |
| | | await getList() |
| | | dialogVisible.value = true |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | }) |
| | | } |
| | | }else if(type === 'viewWord'){ |
| | | //查看审批单 |
| | |
| | | state.fileList = state.fileList.map(item => { |
| | | return { |
| | | name: item.name, |
| | | originalFileName: item.name, |
| | | filePath: item.response.url, |
| | | fileName:item.response.fileName, |
| | | projectId: state.projectId, |
| | |
| | | state.fileList = state.fileList.map(item => { |
| | | return { |
| | | name: item.name, |
| | | originalFileName: item.name, |
| | | filePath: item.response.url, |
| | | fileName:item.response.fileName, |
| | | projectId: state.projectId, |
| | |
| | | <el-button type="primary" v-if="selectedObj.id !== 1" style="width: 80px" @click="back">上一步</el-button> |
| | | <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status ===1 && selectedObj.id !==4 && selectedObj.id !==3 && newProgress !== 4" @click="save">保存</el-button> |
| | | <el-button type="warning" style="width: 110px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.id !==4 && (selectedObj.id ===3 && selectedObj.status !==2) && newProgress !== 4" @click="confirmApproval">确认生成审批单</el-button> |
| | | <el-button type="warning" style="width: 80px" v-if="projectStatus === 'view' || selectedObj.id ===3 && selectedObj.status === 2" @click="viewWord">查看审批单</el-button> |
| | | <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'view' && selectedObj.id ===3) || selectedObj.id ===3 && selectedObj.status === 2" @click="viewWord">查看审批单</el-button> |
| | | <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status !==1 && selectedObj.id !==3 && newProgress !== 4 " @click="clickEdit">变更</el-button> |
| | | <el-button type="warning" style="width: 80px" v-if="selectedObj.id === 4 && selectedObj.status === 1 && newProgress !== 4" @click="confirm">确认完结</el-button> |
| | | <el-button type="primary" style="width: 80px" v-if="selectedObj.id !== 4" @click="next">下一步</el-button> |
| | |
| | | import expert from './components/chooseExpert.vue' |
| | | import approval from './components/projectApproval.vue' |
| | | import archive from './components/projectArchive.vue' |
| | | import {ElMessage} from "element-plus"; |
| | | import {ElMessage, ElMessageBox} from "element-plus"; |
| | | import {get} from "@vueuse/core"; |
| | | import {getProjectInfo} from "@/api/projectManage"; |
| | | import {delProject, getProjectInfo} from "@/api/projectManage"; |
| | | |
| | | const selectedObj = ref({}) |
| | | const nextObj = ref({}) |
| | |
| | | goRouter(selectedObj.value.id,'add') |
| | | } |
| | | const confirmApproval = () => { |
| | | |
| | | goRouter(selectedObj.value.id,'confirmApproval') |
| | | } |
| | | |