Merge remote-tracking branch 'origin/master'

This commit is contained in:
wangzhijiang
2022-05-19 16:45:21 +08:00
13 changed files with 655 additions and 85 deletions
@@ -236,7 +236,7 @@ public class ParamsCollectManifestEOController extends JeroController<ParamsColl
@ApiOperation(value="参数项收集清单-设置截止时间", notes="参数项收集清单-设置截止时间")
@PostMapping(value = "/updateDeadlineBatch")
// @RequiresPermissions("params:collectManifest:deadline")
public Result<?> updateDeadlineBatch(ParamsCollectManifestVO paramsCollectManifestVO) {
public Result<?> updateDeadlineBatch(@RequestBody ParamsCollectManifestVO paramsCollectManifestVO) {
boolean isSuccess = paramsCollectManifestEOService.updateDeadlineBatch(paramsCollectManifestVO);
if (isSuccess) {
return Result.OK("设置截止时间成功!");
@@ -234,16 +234,31 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
Boolean finish = (Boolean) map.get("finish");
Date time = (Date) map.get("time");
if (finish) {
manifestEO.setState(ManifestStateEnum.FINISHED.getValue());
manifestEO.setFinishTime(time);
if (ManifestStateEnum.COLLECTING.getValue().equals(manifestEO.getState())) {
manifestEO.setState(ManifestStateEnum.FINISHED.getValue());
manifestEO.setFinishTime(time);
// 更新清单状态和完成时间
ParamsManifestEO updateParamsManifestEO = new ParamsManifestEO();
updateParamsManifestEO.setId(manifestEO.getId());
updateParamsManifestEO.setState(ManifestStateEnum.FINISHED.getValue());
updateParamsManifestEO.setFinishTime(time);
updateById(updateParamsManifestEO);
// 更新清单状态和完成时间
ParamsManifestEO updateParamsManifestEO = new ParamsManifestEO();
updateParamsManifestEO.setId(manifestEO.getId());
updateParamsManifestEO.setState(ManifestStateEnum.FINISHED.getValue());
updateParamsManifestEO.setFinishTime(time);
updateById(updateParamsManifestEO);
}
} else {
if (ManifestStateEnum.FINISHED.getValue().equals(manifestEO.getState())) {
manifestEO.setState(ManifestStateEnum.COLLECTING.getValue());
manifestEO.setFinishTime(null);
// 更新清单状态和完成时间
ParamsManifestEO updateParamsManifestEO = new ParamsManifestEO();
updateParamsManifestEO.setId(manifestEO.getId());
updateParamsManifestEO.setState(ManifestStateEnum.FINISHED.getValue());
updateParamsManifestEO.setFinishTime(time);
updateById(updateParamsManifestEO);
}
}
});
return rows;
@@ -270,7 +285,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
throw new JeroBootException("清单收集中,无法发起变更!");
}
// 查询项目引用的模板是否是最新版本
Integer newestVersion = paramsInfoPublishEOService.getNewestVersionByParamsTemplateId(id);
Integer newestVersion = paramsInfoPublishEOService.getNewestVersionByParamsTemplateId(paramsManifestEO.getParamsTemplateId());
if (newestVersion == null) {
throw new JeroBootException("查询不到模板最新发布版本!");
}
@@ -280,7 +295,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
// 查询最新版模板参数项
List<ParamsInfoPublishEO> newParamsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(id, newestVersion);
List<ParamsInfoPublishEO> newParamsInfoPublishEOList = paramsInfoPublishEOService.getListByPublishVersion(paramsManifestEO.getParamsTemplateId(), newestVersion);
// 查询项目所有参数项(这时候参数项都收集完了)
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
paramsCollectManifestEO.setParamsManifestId(id);
@@ -331,9 +346,12 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
// 删除参数项配置数据
paramsConfigDataEOService.deleteByParamsCollectManifestIdList(delCollectManifestIdList);
if (CollectionUtil.isNotEmpty(delCollectManifestIdList)) {
paramsConfigDataEOService.deleteByParamsCollectManifestIdList(delCollectManifestIdList);
}
// 更新项目参数项
paramsCollectManifestEOService.updateBatchById(updateCollectManifestEOList);
// 参数清单版本加 1
ParamsManifestEO updateManifestEO = new ParamsManifestEO();
updateManifestEO.setId(id);
@@ -126,12 +126,6 @@ public class ParamsManifestHistoryEOServiceImpl extends ServiceImpl<ParamsManife
// 添加清单
paramsManifestHistoryEOService.save(paramsManifestHistoryEO);
// 参数清单版加 1
ParamsManifestEO updateParamsManifestEO = new ParamsManifestEO();
updateParamsManifestEO.setId(paramsManifestEO.getId());
updateParamsManifestEO.setVersion(paramsManifestEO.getVersion() + 1);
paramsManifestEOService.updateById(updateParamsManifestEO);
}
@Override
@@ -45,8 +45,8 @@ public class ParamsCollectManifestVO {
@ApiModelProperty(value = "提交专用")
private List<Map<String, Object>> configDataList; // 提交专用
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "截止时间")
private Date deadline; // 截止时间
@@ -460,6 +460,17 @@ public class BussDocumentLibraryEOController extends JeroController<BussDocument
return Result.OK(pageList);
}
@ApiOperation(value="虚拟中心添加调用文档库数据--分页", notes="虚拟中心添加调用文档库数据--分页")
@PostMapping(value = "/queryPageDummy")
@ResponseBody
public JSONObject queryPageDummy(@RequestBody Map<String,Object> parameter) {
IPage infoPage = bussDocumentLibraryEOService.getPageDummy(parameter);
Result<IPage> ok = Result.OK(infoPage);
JSONObject jsonResult = JSONObject.fromObject(ok);
return jsonResult;
}
/**
* 查看已上传的文件
* @param id
@@ -207,4 +207,6 @@ public interface IBussDocumentLibraryEOService extends IService<BussDocumentLibr
IPage<BussDocumentLibraryEO> queryPageInfoDummy(Page<BussDocumentLibraryEO> page, QueryWrapper<BussDocumentLibraryEO> queryWrapper,BussDocumentLibraryEO bussDocumentLibraryEO);
IPage getPageDummy(Map<String, Object> parameter);
}
@@ -4949,4 +4949,64 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
return pageList;
}
public IPage getPageDummy(Map<String, Object> parameter) {
String cut = (String) parameter.get("cut");//中英文切换标识
//文档库字段
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//需要查询的字段
List<String> fieldListQuery = new ArrayList<>();
fieldListQuery.add("serial_number");
fieldListQuery.add("title");
fieldListQuery.add("title_en");
fieldListQuery.add("state");
fieldListQuery.add("technology_territory");
fieldListQuery.add("xin1_che1_xing2_shi2_shi1_ri4_qi1");
fieldListQuery.add("implement_time");
List<String> fieldListNew = new ArrayList<>();
fieldListNew.add("id");
//转时间格式
for (String field : fieldListQuery) {
String fieldTemp = null;
if ("xin1_che1_xing2_shi2_shi1_ri4_qi1".equals(field) || "implement_time".equals(field)) {
String fieldNew = "date_format(" + field + ", '%Y-%m-%d')";
fieldTemp = "case when " + fieldNew + " is null then \"\" else " + fieldNew + " end " + field;
fieldListNew.add(fieldTemp);
} else {
fieldTemp = "case when " + field + " is null then \"\" else " + field + " end " + field;
fieldListNew.add(fieldTemp);
}
}
//封装查询条件
String condition = getConditionStr(parameter);
int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
int pageSize = Integer.parseInt(parameter.get("pageSize").toString());
IPage page = new Page(pageNo, pageSize);
IPage infoPage = bussDocumentLibraryEOMapper.getInfoPage(page, " " + StringUtils.join(fieldListNew, ","), condition);
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
//过滤出树形字段
List<OnlCgformField> treeFieldList = fieldList.stream()
.filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
.collect(Collectors.toList());
List<Map> records = infoPage.getRecords();
//数据字典
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
//下拉选处理数据字典
for (Map record : records) {
Map<String, Object> record1 = (Map) record;
for (Map.Entry<String, Object> entry : record1.entrySet()) {
//下拉选处理数据字典
dictItem(sysDictItems, entry, cut, fieldList,null);
treeDictItem(categoryList, entry, treeFieldList, cut,null);
}
}
return infoPage;
}
}
+10
View File
@@ -707,6 +707,7 @@ module.exports = {
uploadTime: 'Upload time',
enclosure: 'enclosure',
// 认证
checkTheDeadline: 'Select the collection deadline of the parameter item',
accountNumber: 'account Number',
fullName: 'full Name',
configurationInformation: 'configuration Information',
@@ -845,4 +846,13 @@ module.exports = {
Importing:'Importing...',
projectDeliveryDescription:'Project delivery description',
cancelConfirm:'Cancel Confirm',
currentInformation:'Current Information',
deliveryHistory:'Delivery History',
projectDeliveryRequirements:'Project delivery requirements',
personLiableConfirm:'PersonLiable Confirm',
complianceResults:'Compliance results',
noData:'No data',
confirmOperation:'Confirm Operation',
sponsorReview:'Sponsor review',
fillInProjectDelivery:'Fill in project delivery',
}
+10
View File
@@ -717,6 +717,7 @@ module.exports = {
uploadTime: '上传时间',
enclosure: '附件',
// 认证
checkTheDeadline: '选中参数项收集截止时间',
accountNumber: '账号',
fullName: '姓名',
configurationInformation: '配置信息',
@@ -850,4 +851,13 @@ module.exports = {
Importing:'导入中...',
projectDeliveryDescription:'工程交付说明',
cancelConfirm:'取消确认',
currentInformation:'当前信息',
deliveryHistory:'交付历史',
projectDeliveryRequirements:'工程交付要求',
personLiableConfirm:'责任人确认',
complianceResults:'符合性结果',
noData:'暂无数据',
confirmOperation:'确认操作',
sponsorReview:'发起人审查',
fillInProjectDelivery:'填写工程交付',
}
@@ -0,0 +1,168 @@
<template>
<div class='diolag-area'>
<a-spin :spinning='spinLoading'>
<a-form-model
class='tag-module'
ref='ruleForm'
:model='form'
:rules='rules'
:label-col='labelCol'
:wrapper-col='wrapperCol'
>
<a-row :gutter='24'>
<a-col :span='24'>
<a-form-model-item ref='paramsTemplateName' :label="$t('checkTheDeadline')" prop='paramsTemplateName'>
<a-date-picker show-time :placeholder="$t('PleaseSelect')+$t('cutoffTime')" @change="onChange" @ok="onOk" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-spin>
<div class='drawer-bootom-button'>
<a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('submit') }}</a-button>
</div>
</div>
</template>
<script>
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
import axios from 'axios'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import moment from 'moment'
import eventBUs from '../../common/event'
export default {
name: 'diolagArea',
components: {},
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
title: this.$t('add'),
total: 0,
selectedRowKeysDate: {},
loading: false,
editId: '',
newVisible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 }
},
form: {},
rules: {},
areaTable: [],
flag: false, //表单提交标识
spinLoading: false,
confirmLoading: false,
selectedRowKeys: [],
pageNo: 1,
pageSize: 10,
pickerDate: '',
}
},
props: {
selectedRowKeysArray: {
type: String,
default: '',
require: true
}
},
mounted() {
this.loadData()
},
methods: {
loadData() {
this.loading = true
let params = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.form
}
getAction(`sys/user/page`, params).then(res => {
if (res.success) {
this.areaTable = [...res.result.records]
this.total = res.result.total
}
}).finally(() => {
this.loading = false
})
},
searchQuery() {
this.loadData()
},
searchReset() {
this.form = {}
this.loadData()
},
handleCancel() {
this.$emit('areaVisibleTaskCutOffTimeflag', false)
},
handleTableChange(val) {
},
//新增
handleSubmit() {
let _this = this
let param = {ids: this.selectedRowKeysArray, deadline: `${this.pickerDate}`, }
postAction('/params/collectManifest/updateDeadlineBatch', param).then((res) => {
if (res.success) {
this.loadData()
this.$emit('areaVisibleTaskCutOffTimeflag', false)
this.$message.success(res.message)
} else {
this.$message.warning(res.message)
}
})
},
onChange(val) {
this.pickerDate = moment(val).format('YYYY-MM-DD HH:mm:ss')
},
onOk(val) {
this.pickerDate = moment(val).format('YYYY-MM-DD HH:mm:ss')
},
}
}
</script>
<style lang='less' scoped>
@import '~@assets/less/common.less';
.diolag-area {
.table-area {
margin: 20px 0;
.action-edit {
margin-right: 10px;
}
}
.table-del {
color: red;
}
}
.drawer-bootom-button{
display: flex;
justify-content: center;
}
</style>
<style lang='less'>
.area-module {
.ant-modal-wrap {
.ant-modal {
.ant-modal-content {
.ant-modal-footer {
text-align: center;
}
}
}
}
}
.page{
display: flex;
justify-content: flex-end;
margin-bottom: 20px;
}
</style>
@@ -39,21 +39,29 @@
{{$t('viewFile')}}
</a>
</span>
<span slot="engineerFeedbackContent" slot-scope="text,result">
<a class="text"
@click="detailsClick(result)">
{{text}}
</a>
</span>
<span slot="operation" slot-scope="result">
<a class="text"
v-if="$route.query.TaskKey == 'zrrclrw' || $route.query.TaskKey == 'dreDispose'"
:disabled="!result.createUser"
@click="edit(result,$t('edit'))">
{{$t('edit')}}
</a>
<a class="text"
@click="detailsClick(result)">
{{$t('details')}}
</a>
<a class="text"
v-if="$route.query.TaskKey == 'zrrclrw'"
@click="answerClick(result,$t('replyFromProjectContactPerson'))">
{{$t('confirm')}}
:disabled="!result.status"
@click="confirm(result)">
<span v-if="result.status == 'NotDone'">
{{$t('confirm')}}
</span>
<span v-if="result.status == 'haveDone'">
{{$t('cancelConfirm')}}
</span>
</a>
<a class="text"
v-if="$route.query.TaskKey == 'zrrclrw'"
@@ -167,7 +175,7 @@
</a-modal>
<a-modal
:title="$t('engineeringConfirmationDetails')"
:width="600"
:width="900"
:visible="visibleDetails"
:maskClosable="false"
@cancel="visibleDetails = false"
@@ -177,57 +185,88 @@
{{$t('cancel')}}
</a-button>
</template>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="6">
<div class="text-field-left">{{this.$t('feedbackFromTheEngineer')}}:</div>
</a-col>
<a-col :span="18">
<div class="text-field-right">
{{formInlineDetails.engineerFeedbackContent}}
<div class="engineeringBox">
<div style="width: calc(100% - 12px)" v-for="(item,index) in detailsList" v-if="detailsList.length > 0">
<div class="title-header-text" v-if="index == 0">
{{this.$t('currentInformation')}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="6">
<div class="text-field-left">{{this.$t('Deliverables')}}:</div>
</a-col>
<a-col :span="18">
<div v-if="formInlineDetails.fileId" class="text-field-right text-field-cou"
@click="viewFileClick(formInlineDetails.fileId)">
{{this.$t('viewFile')}}
<div class="title-header-text" style="margin-top: 40px" v-if="index == 1">
{{this.$t('deliveryHistory')}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="6">
<div class="text-field-left">{{this.$t('completedBy')}}:</div>
</a-col>
<a-col :span="18">
<div class="text-field-right">
{{formInlineDetails.createBy}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="6">
<div class="text-field-left">{{this.$t('completedTime')}}:</div>
</a-col>
<a-col :span="18">
<div class="text-field-right">
{{formInlineDetails.createTime}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="6">
<div class="text-field-left">{{this.$t('replyFromProjectContactPerson')}}:</div>
</a-col>
<a-col :span="18">
<div class="text-field-right">
{{formInlineDetails.engineeringInterfacePersonReply}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="5">
<div class="text-field-left">{{this.$t('projectDeliveryRequirements')}}:</div>
</a-col>
<a-col :span="19">
<div class="text-field-right">
{{item.deliveryInstructions}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="5">
<div class="text-field-left">{{this.$t('feedbackFromTheEngineer')}}:</div>
</a-col>
<a-col :span="19">
<div class="text-field-right">
{{item.engineerFeedbackContent}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="5">
<div class="text-field-left">{{this.$t('Deliverables')}}:</div>
</a-col>
<a-col :span="19">
<div v-if="item.fileId" class="text-field-right text-field-cou"
@click="viewFileClick(item.fileId)">
{{this.$t('viewUploadedFiles')}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="5">
<div class="text-field-left">{{this.$t('completedBy')}}:</div>
</a-col>
<a-col :span="7">
<div class="text-field-right">
{{item.createBy}}
</div>
</a-col>
<a-col :span="5">
<div class="text-field-left">{{this.$t('completedTime')}}:</div>
</a-col>
<a-col :span="7">
<div class="text-field-right">
{{item.createTime}}
</div>
</a-col>
</a-row>
<a-row :gutter="24" style="margin-bottom: 18px">
<a-col :span="5">
<div class="text-field-left">{{this.$t('replyFromProjectContactPerson')}}:</div>
</a-col>
<a-col :span="19">
<div class="text-field-right">
{{item.engineeringInterfacePersonReply}}
</div>
</a-col>
</a-row>
</div>
<div class="noData">
{{this.$t('noData')}}
</div>
</div>
<div class="page" v-if="detailsList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
:page-size.sync="pageSize"
:total="total"
@change="pageOnChange"
/>
</div>
<JLoading :loading="pageLoading">{{$t('dataLoading')}}</JLoading>
</a-modal>
<a-modal
:title="$t('reminderHandling')"
@@ -277,8 +316,12 @@
return {
loading: false,
visibleFile: false,
pageLoading: false,
dataSource: [],
dataSourceTable: [],
pageSize: 10,
pageNo: 1,
total: 0,
distributionEngineerList: [],
columnsTable: [
{
@@ -367,7 +410,8 @@
title: this.$t('feedbackFromTheEngineer'),
dataIndex: 'engineerFeedbackContent',
align: 'center',
ellipsis: true
ellipsis: true,
scopedSlots: { customRender: 'engineerFeedbackContent' }
},
{
title: this.$t('Deliverables'),
@@ -385,10 +429,11 @@
{
title: this.$t('operation'),
align: 'center',
width: 200,
width: 300,
scopedSlots: { customRender: 'operation' }
}
],
detailsList: [],
url: {
list: '/project/projectTaskInventoryFeedbackEO/list',
add: '/project/projectTaskInventoryFeedbackEO/add',
@@ -396,7 +441,9 @@
deleted: '/project/projectTaskInventoryFeedbackEO/delete',
DetailEOAdd: '/project/projectTaskInventoryDetailEO/add',
queryByActiProcInstId: '/project/projectTaskInventoryDetailEO/queryByActiProcInstId',
remindDispose: '/project/projectTaskInventoryEO/remindDispose'
remindDispose: '/project/projectTaskInventoryEO/remindDispose',
page: '/project/feedbackHistory/page',
confirmEdit: '/project/projectTaskInventoryDetailEO/edit'
}
}
},
@@ -404,6 +451,10 @@
this.getList()
},
methods: {
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
handleOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
@@ -482,6 +533,34 @@
this.$refs.ruleForm.validateField()
})
},
confirm(val) {
let _this = this
this.$confirm({
content: _this.$t('confirmOperation') + '?',
onOk() {
let query = {}
if (val.status == 'NotDone') {
query = {
id: val.projectTaskInventoryId,
status: 'haveDone'
}
} else {
query = {
id: val.projectTaskInventoryId,
status: 'NotDone'
}
}
putAction(_this.url.confirmEdit, query).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
},
reminderHandling() {
this.visibleTable = true
this.getReminderHandlingList()
@@ -526,8 +605,25 @@
})
},
detailsClick(val) {
this.formInlineDetails = val || {}
this.visibleDetails = true
this.getDetails(val)
},
getDetails(row) {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
feedbackId: row.id
}
this.pageLoading = true
getAction(this.url.page, query).then((res) => {
if (res.success) {
this.detailsList = res.result.records || []
this.total = res.result.total
this.pageLoading = false
} else {
this.pageLoading = false
}
})
},
PersonnelSelectionChange(value, id) {
this.formInline[value] = id
@@ -754,4 +850,28 @@
color: #00B3BE;
cursor: pointer;
}
.engineeringBox {
width: 100%;
max-height: 600px;
overflow: auto;
}
.title-header-text {
font-size: 16px;
font-weight: 400;
color: #000F16;
margin-bottom: 30px;
}
.page {
text-align: right;
margin-top: 20px;
}
.noData {
height: 200px;
line-height: 200px;
text-align: center;
}
</style>
@@ -2,11 +2,11 @@
<div class="box">
<div class="box-text">
<div class="header-text">
{{$t('reviewedByThePersonInCharge')}}
{{$route.query.TaskKey == 'zrrclrw' ? $t('personLiableConfirm'):$t('fillInProjectDelivery')}}
</div>
</div>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-row :gutter="24" v-if="$route.query.TaskKey == 'zrrclrw'">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
@@ -35,7 +35,100 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-row :gutter="24" v-if="$route.query.TaskKey == 'zrrclrw'">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
</div>
<a-form-model-item class="itemModel" prop="approvalOpinion">
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')" v-model="formInline.approvalOpinion"
:rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="$route.query.TaskKey == 'dreDispose'">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text-fq">
<span class="title-text-text" :title="$t('projectDeliveryDescription')">{{$t('projectDeliveryDescription')}}</span>
</div>
<a-form-model-item class="itemModel">
<span class="text-header">
爱上克里夫就的撒开了房间圣诞快乐房价士大夫打扫房间圣诞快乐房价是罚款乱收费考虑是否就但是考虑
</span>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="$route.query.TaskKey == 'dreDispose'">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text-fq">
<span class="title-text-text"
:title="$t('feedbackFromTheEngineer')">{{$t('feedbackFromTheEngineer')}}</span>
</div>
<a-form-model-item class="itemModel" prop="engineerFeedbackContent">
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackFromTheEngineer')"
v-model="formInline.engineerFeedbackContent"
:rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="$route.query.TaskKey == 'dreDispose'">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text-fq">
<span class="title-text-text"
:title="$t('Deliverables')">{{$t('Deliverables')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('fileId')">
{{ (formInline.fileId === 'null' || formInline.fileId === '' ||
formInline.fileId == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="$route.query.TaskKey == 'fqrsh'">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text-fq">
<span class="title-text-text" :title="$t('complianceResults')">{{$t('complianceResults')}}</span>
</div>
<a-form-model-item class="itemModel">
<span class="text-header">
爱上克里夫就的撒开了房间圣诞快乐房价士大夫打扫房间圣诞快乐房价是罚款乱收费考虑是否就但是考虑
</span>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="$route.query.TaskKey == 'fqrsh'">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text-fq">
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
</div>
<a-form-model-item class="itemModel">
<span class="text-header">
爱上克里夫就的撒开了房间圣诞快乐房价士大夫打扫房间圣诞快乐房价是罚款乱收费考虑是否就但是考虑
</span>
</a-form-model-item>
</div>
</a-col>
</a-row>
<div class="box-text" v-if="$route.query.TaskKey == 'fqrsh'">
<div class="header-text">
{{$t('sponsorReview')}}
</div>
</div>
<a-row :gutter="24" v-if="$route.query.TaskKey == 'fqrsh'">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
@@ -49,12 +142,19 @@
</a-col>
</a-row>
</a-form-model>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
</div>
</template>
<script>
import { getAction, postAction, putAction, deleteAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
export default {
name: 'reviewedByThePersonInCharge',
components: {
uploadFile
},
props: ['queryBy'],
data() {
return {
@@ -74,6 +174,13 @@
message: this.$t('feedbackMessage') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
engineerFeedbackContent: [
{
max: 300,
message: this.$t('feedbackFromTheEngineer') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
]
}
}
@@ -92,6 +199,33 @@
callBack(this.formInline)
}
})
},
clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
this.uploadName = item
getAction('sys/common/getFileInfos', { id: this.formInline[item] }).then((res) => {
if (res.success) {
this.$refs.uploadFile.perentHandleFunc(res.result)
} else {
this.$refs.uploadFile.perentHandleFunc()
}
})
},
/** 上传文件的回调 */
uploadSuccess(data) {
let attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push(item.id || data.name)
})
}
/** 赋值给当前对应的表单文件 */
this.formInline[this.uploadName] = attIdList.join(',')
this.formInline = { ...this.formInline }
this.$nextTick(() => {
this.$refs.ruleForm.validateField([this.uploadName])
})
}
}
}
@@ -138,6 +272,21 @@
color: #000F16;
}
.title-text-fq {
width: 124px;
text-align: left;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 48px;
color: #000F16;
}
.box-input {
display: inline-block;
height: 38px;
@@ -164,9 +313,15 @@
/* margin-bottom: 40px;*/
/*}*/
.text-header {
font-size: 16px;
color: #040B29;
font-weight: 400;
}
.button-text {
height: 38px;
width: calc(100% - 100px);
width: calc(50% - 100px);
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
@@ -83,6 +83,11 @@
<a-icon type="bulb"/>
{{$t('CompulsoryWithdrawal')}}
</div>
<!-- 截止时间-->
<div @click="TaskCutOffTime" class="operator-text-title">
<a-icon type="bulb"/>
{{$t('TaskCutOffTime')}}
</div>
</template>
<div class="operator-text" style="position: relative">
<span style="position: absolute;left: -13px;top: -4px">...</span>{{ $t('more') }}
@@ -163,6 +168,10 @@
<a-modal v-model="areaVisibleAssignedby" :title="$t('Assignedby')" width='950px' :footer="null">
<assigned-by v-if='areaVisibleAssignedby' :selectedRowKeysArray='selectedRowKeysArray' @areaVisibleAssignedbyflag='areaVisibleAssignedbyflag'/>
</a-modal>
<!-- 截至时间--->
<a-modal v-model="areaVisibleTaskCutOffTime" :title="$t('TaskCutOffTime')" width='650px' :footer="null">
<task-cut-off-time v-if='areaVisibleTaskCutOffTime' :selectedRowKeysArray='selectedRowKeysArray' @areaVisibleTaskCutOffTimeflag='areaVisibleTaskCutOffTimeflag'/>
</a-modal>
</a-card>
</template>
@@ -170,16 +179,19 @@
import TableCollection from '@/components/tableCollection/index'
import { getAction,postAction } from '../../../api/manage'
import ParameterLibraryAdd from '@/components/ParameterLibraryAdd/index'
import TaskCutOffTime from '@/components/TaskCutOffTime/index'
import AssignedBy from '@/components/AssignedBy/index'
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue'
import moment from 'moment'
export default {
name: 'ParameterItemCollectionList',
components:{
TableCollection,
ParameterLibraryAdd,
AssignedBy
AssignedBy,
TaskCutOffTime
},
data(){
return{
@@ -263,6 +275,7 @@ export default {
Dateline: {},
areaVisibleFreeze: false, // 冻结配置
areaVisibleAssignedby: false, // 分配填写人弹框
areaVisibleTaskCutOffTime: false, // 截至时间弹框
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 }
@@ -566,9 +579,18 @@ export default {
assignedBy() {
this.areaVisibleAssignedby = true
},
// 分配填写人确定后弹框关闭
areaVisibleAssignedbyflag(val) {
this.areaVisibleAssignedby = val
},
// 截止时间
TaskCutOffTime() {
this.areaVisibleTaskCutOffTime = true
},
// 截至时间确定弹框关闭
areaVisibleTaskCutOffTimeflag(val) {
this.areaVisibleTaskCutOffTime = val
},
handleModule() {
},