合并分支 'fix_20230508' 到 'master'
Fix 20230508 查看合并请求 laws-nio/laws-weilai!324
This commit is contained in:
+4
@@ -106,4 +106,8 @@ public class ProjectRelatedPersonnel implements Serializable {
|
||||
//批量设置传参ids
|
||||
@TableField(exist = false)
|
||||
private String ids;
|
||||
|
||||
// 一级责任领域(统计节点)
|
||||
@TableField(exist = false)
|
||||
private String firstLevelDutyTerritory;
|
||||
}
|
||||
|
||||
+30
@@ -28,8 +28,10 @@ import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.mapper.SysDictItemMapper;
|
||||
import com.jero.modules.system.mapper.SysDictMapper;
|
||||
import com.jero.modules.system.mapper.SysUserMapper;
|
||||
import com.jero.modules.system.service.ISysDictItemService;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||
import com.jero.modules.system.util.StringUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
@@ -108,6 +110,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
@Autowired
|
||||
private ProjectLibraryBaseMapper projectLibraryBaseMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysDictItemService sysDictItemService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -334,6 +339,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
|
||||
public void disposeData(List<ProjectRelatedPersonnel> records) {
|
||||
|
||||
List<SysDictItem> sysDictItems = this.sysDictItemService.selectItemsAll();
|
||||
Map<String, List<SysDictItem>> firstLevelDutyTerritoryMap = this.sysDictItemService.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(),sysDictItems);
|
||||
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
|
||||
//法规工程师
|
||||
List<SysUser> lawEngineerUsers = new ArrayList<>();
|
||||
@@ -459,6 +467,28 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
projectRelatedPersonnel.setEngineerAttSetName(AttSetName.substring(0,AttSetName.toString().length()-1));
|
||||
}
|
||||
}
|
||||
|
||||
String dutyTerritory = projectRelatedPersonnel.getDutyTerritory();
|
||||
for (Map.Entry<String, List<SysDictItem>> firstLevelMap : firstLevelDutyTerritoryMap.entrySet()) {
|
||||
String firstLevel = firstLevelMap.getKey();
|
||||
List<SysDictItem> dutyTerritoryList = firstLevelMap.getValue();
|
||||
if(StringUtils.isEmpty(firstLevel) && CollectionUtils.isEmpty(dutyTerritoryList)){
|
||||
continue;
|
||||
}
|
||||
|
||||
List<SysDictItem> dutyTerritoryListTemp = dutyTerritoryList.stream().filter(sysDictItem -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(sysDictItem.getItemValue(), dutyTerritory)) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
if(CollectionUtils.isNotEmpty(dutyTerritoryListTemp)){
|
||||
projectRelatedPersonnel.setFirstLevelDutyTerritory(firstLevel);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1831,4 +1831,7 @@ module.exports = {
|
||||
proportionWithInTheAreaOfResponsibility:'Proportion within the area of responsibility',
|
||||
contentsearch:'Content Search',
|
||||
masterProject:'Master Project',
|
||||
deliveryTime:'Delivery Time',
|
||||
expectedDeliveryTime:'Expected Delivery Time',
|
||||
changeAuthor:'Change Author',
|
||||
}
|
||||
@@ -1932,4 +1932,7 @@ module.exports = {
|
||||
proportionWithInTheAreaOfResponsibility:'责任领域内占比',
|
||||
contentsearch:'内容搜索',
|
||||
masterProject:'主项目',
|
||||
deliveryTime:'交付时间',
|
||||
expectedDeliveryTime:'预计交付时间',
|
||||
changeAuthor:'更改作者',
|
||||
}
|
||||
+78
-12
@@ -12,9 +12,9 @@
|
||||
<div style="padding-top: 68px;background: #fff">
|
||||
<div class="detail-content" style="padding: 30px">
|
||||
<div class="search-detail-wrap">
|
||||
<a-form layout="inline" style="width: 1200px;margin: 0 auto" @keyup.enter.native="onSearch">
|
||||
<a-form layout="inline" @keyup.enter.native="onSearch">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="10">
|
||||
<a-col :span="6">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('searchContent')">
|
||||
<span>{{$t('searchContent')}}</span>
|
||||
@@ -23,7 +23,7 @@
|
||||
v-model="queryParam.searchStr"></a-input>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
<a-col :span="6">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('releaseStatus')">
|
||||
<span>{{$t('releaseStatus')}}</span>
|
||||
@@ -40,10 +40,29 @@
|
||||
</a-select>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="6">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('displayPermission')">
|
||||
<span>{{$t('displayPermission')}}</span>
|
||||
</div>
|
||||
<a-select :placeholder="$t('PleaseSelect')+$t('displayPermission')"
|
||||
v-model="queryParam.showPermissions">
|
||||
<a-select-option v-for="(item, key) in projectNameList"
|
||||
:key="key"
|
||||
:value="item.value">
|
||||
<span class="selectText" :title=" item.name ">
|
||||
{{ item.name}}
|
||||
</span>
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</div>
|
||||
</a-col>
|
||||
<div style="text-align: right">
|
||||
<a-button class="box-button" @click="ResetSearch">{{$t('reset')}}
|
||||
</a-button>
|
||||
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="onSearch">{{$t('query')}}</a-button>
|
||||
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="onSearch">
|
||||
{{$t('query')}}
|
||||
</a-button>
|
||||
</div>
|
||||
</a-row>
|
||||
</a-form>
|
||||
@@ -55,7 +74,7 @@
|
||||
<!-- <a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>-->
|
||||
<div class="text-text-right">
|
||||
<div class="text-header" @click="titleClick(item)">
|
||||
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
|
||||
<a-tooltip placement="topLeft" overlayClassName="header-top" :mouseEnterDelay="0.5">
|
||||
<template slot="title">
|
||||
<span v-html="item.title"></span>
|
||||
</template>
|
||||
@@ -75,6 +94,8 @@
|
||||
{{item.createBy}}
|
||||
</div>
|
||||
<div class="text-text-right-text">
|
||||
<a style="margin-right: 10px" @click="changeAuthorClick(item)"
|
||||
v-if="administrators">{{$t('changeAuthor')}}</a>
|
||||
<a style="margin-right: 10px" @click="edit(item)"
|
||||
v-if="userInfoQuery.username == item.createBy || administrators">{{$t('edit')}}</a>
|
||||
<a @click="deleteData(item)"
|
||||
@@ -103,15 +124,21 @@
|
||||
</div>
|
||||
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
|
||||
</div>
|
||||
<SelectedBy ref="SelectedByRef" :isSingleChoice="true"
|
||||
:title="$t('changeAuthor')" @SelectedByForm="SelectedByForm"></SelectedBy>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAction, postAction, putAction, deleteAction } from '@/api/manage'
|
||||
import SelectedBy from '@/components/SelectedBy/index'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'problemKnowledgeBaseRelease',
|
||||
components: {
|
||||
SelectedBy
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
checkboxText: [],
|
||||
@@ -129,14 +156,26 @@
|
||||
value: 'Have released'
|
||||
}
|
||||
],
|
||||
projectNameList: [
|
||||
{
|
||||
value: 'Open',
|
||||
name: this.$t('OpenOne')
|
||||
},
|
||||
{
|
||||
value: 'Privacy',
|
||||
name: this.$t('Privacy')
|
||||
}
|
||||
],
|
||||
loading: false,
|
||||
administrators: false,
|
||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||
pageNo: 1,
|
||||
userInfoQuery: {},
|
||||
formInline: {},
|
||||
url: {
|
||||
getInfoList: '/problemKnowledgeBase/problemKnowledgeBaseEO/page',
|
||||
deleteBatch: '/problemKnowledgeBase/problemKnowledgeBaseEO/deleteBatch'
|
||||
deleteBatch: '/problemKnowledgeBase/problemKnowledgeBaseEO/deleteBatch',
|
||||
edit: '/problemKnowledgeBase/problemKnowledgeBaseEO/edit'
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -155,6 +194,28 @@
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
changeAuthorClick(item) {
|
||||
this.formInline = item
|
||||
this.$refs.SelectedByRef.getPush()
|
||||
},
|
||||
//转办接口
|
||||
SelectedByForm(userIds, name) {
|
||||
let query = {
|
||||
createBy: name,
|
||||
id: this.formInline.id
|
||||
}
|
||||
putAction(this.url.edit, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
this.$refs.SelectedByRef.visible = false
|
||||
this.$refs.SelectedByRef.submitLoading = false
|
||||
this.getList()
|
||||
} else {
|
||||
this.$refs.SelectedByRef.submitLoading = false
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
}
|
||||
})
|
||||
},
|
||||
pageOnChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
this.getList()
|
||||
@@ -252,7 +313,7 @@
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import'~@assets/less/common.less';
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.doc-detail {
|
||||
background: #fff;
|
||||
@@ -328,7 +389,7 @@
|
||||
|
||||
.text-text-right {
|
||||
padding: 19px 19px;
|
||||
width: calc(100% - 540px);
|
||||
width: calc(100% - 570px);
|
||||
box-sizing: border-box;
|
||||
/*margin-left: 38px;*/
|
||||
}
|
||||
@@ -338,7 +399,7 @@
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
right: 300px;
|
||||
right: 330px;
|
||||
top: 50%;
|
||||
transform: translate-Y(-50%);
|
||||
}
|
||||
@@ -348,7 +409,7 @@
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
right: 420px;
|
||||
right: 450px;
|
||||
top: 50%;
|
||||
transform: translate-Y(-50%);
|
||||
}
|
||||
@@ -358,13 +419,13 @@
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
right: 180px;
|
||||
right: 210px;
|
||||
top: 50%;
|
||||
transform: translate-Y(-50%);
|
||||
}
|
||||
|
||||
.text-text-right-text {
|
||||
width: 180px;
|
||||
width: 210px;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
@@ -473,4 +534,9 @@
|
||||
.box-button {
|
||||
height: 38px;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.header-top .ant-tooltip-inner{
|
||||
color: #333!important;
|
||||
}
|
||||
</style>
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="monthlyReportRegulations-box">
|
||||
<div class="header-text">
|
||||
<div class="header-text-left">{{this.$t('monthlyReportRegulations')}}</div>
|
||||
<div class="header-text-left">{{this.$t('problemKnowledgeBase')}}</div>
|
||||
<div class="header-text-right" @click="moreClick">
|
||||
More
|
||||
<img src="../../../assets/gengduo.png" alt="">
|
||||
|
||||
@@ -846,11 +846,11 @@
|
||||
}
|
||||
|
||||
.text-field-right {
|
||||
width: calc(66.6% - 130px);
|
||||
width: calc(100% - 130px);
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
</div>
|
||||
<div class="dic-list-table">
|
||||
<list-table v-if="dictVal=='list'&&dataFlag" :tableData="tableData" @editDict="editDict"
|
||||
:record="record"
|
||||
@deleteDict="deleteDict" :total="total" :queryParams="queryParams" @selected="selectedKeys"
|
||||
@ok="ok"></list-table>
|
||||
<tree-table v-if="dictVal=='tree'&&dataFlag" :tabletreeData="tabletreeData" :record="record"
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
<template>
|
||||
<div class="list-table">
|
||||
<a-table :data-source="tableData" :scroll="{x: 900}"
|
||||
:columns="columns" rowKey="id"
|
||||
:components="drag(columns,'columns')"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:pagination="false"
|
||||
class="tag-con-table">
|
||||
<div class="list-table">
|
||||
<a-table :data-source="tableData" :scroll="{x: 900}"
|
||||
:columns="columns" rowKey="id"
|
||||
:components="drag(columns,'columns')"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:pagination="false"
|
||||
class="tag-con-table">
|
||||
|
||||
<template slot="action" slot-scope="text, record">
|
||||
<a class="action-edit" href="javascript:;" @click="actionEdit(record)" v-has="'bqnrzdpzxlbj'">{{$t('edit')}}</a>
|
||||
<a class="action-delete" href="javascript:;" @click="onDelete(record)" v-has="'dictItem:logicDelete'">{{$t('delete')}}</a>
|
||||
</template>
|
||||
</a-table>
|
||||
<div class="page" v-if="tableData.length > 0">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:current="queryParams.pageNo"
|
||||
:page-size.sync="queryParams.pageSize"
|
||||
:total="total"
|
||||
@change="onChangePage"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
<template slot="action" slot-scope="text, record">
|
||||
<a class="action-edit" href="javascript:;" @click="actionEdit(record)" v-has="'bqnrzdpzxlbj'">{{$t('edit')}}</a>
|
||||
<a class="action-delete" href="javascript:;" @click="onDelete(record)" v-has="'dictItem:logicDelete'">{{$t('delete')}}</a>
|
||||
</template>
|
||||
</a-table>
|
||||
<div class="page" v-if="tableData.length > 0">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:current="queryParams.pageNo"
|
||||
:page-size.sync="queryParams.pageSize"
|
||||
:total="total"
|
||||
@change="onChangePage"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -32,115 +32,140 @@
|
||||
|
||||
export default {
|
||||
name: 'listTable',
|
||||
props:{
|
||||
tableData:Array,
|
||||
total:Number,
|
||||
queryParams: Object
|
||||
props: {
|
||||
tableData: Array,
|
||||
total: Number,
|
||||
queryParams: Object,
|
||||
record: Object
|
||||
},
|
||||
mixins:[ResizeHeader, ResizeColumnProvide],
|
||||
data(){
|
||||
return{
|
||||
mixins: [ResizeHeader, ResizeColumnProvide],
|
||||
data() {
|
||||
return {
|
||||
// tableData:[],
|
||||
selectedRowKeys:[],
|
||||
selectedRowKeys: [],
|
||||
// total:0,
|
||||
// queryParams:{
|
||||
// pageNo:1,
|
||||
// pageSize:10
|
||||
// }, //搜索条件
|
||||
columns: [
|
||||
columnsAll: [
|
||||
{
|
||||
title: this.$t('name'),
|
||||
dataIndex: 'itemText',
|
||||
key: 'itemText',
|
||||
align: "left",
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 100,
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: this.$t('enName'),
|
||||
align: "left",
|
||||
align: 'left',
|
||||
width: 100,
|
||||
ellipsis: true,
|
||||
dataIndex: 'enName',
|
||||
dataIndex: 'enName'
|
||||
},
|
||||
{
|
||||
title: this.$t('statisticalNodes'),
|
||||
align: 'left',
|
||||
dataIndex: 'statNode',
|
||||
ellipsis: true,
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: this.$t('describe'),
|
||||
align: "left",
|
||||
align: 'left',
|
||||
width: 100,
|
||||
ellipsis: true,
|
||||
dataIndex: 'description',
|
||||
dataIndex: 'description'
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
dataIndex: 'action',
|
||||
scopedSlots: {customRender: 'action'},
|
||||
align: "left",
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'left',
|
||||
width: 170
|
||||
}
|
||||
],
|
||||
dataFlag:false
|
||||
dataFlag: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// this.loadData()
|
||||
console.log(this.record)
|
||||
},
|
||||
methods:{
|
||||
//获取列表数据
|
||||
loadData(){
|
||||
this.dataFlag=false
|
||||
let params={
|
||||
...this.queryParams,
|
||||
dictId:this.record.id
|
||||
computed: {
|
||||
columns() {
|
||||
let columnsAll = JSON.parse(JSON.stringify(this.columnsAll))
|
||||
if (this.record.id != '1513417672023441409') {
|
||||
for (let i = 0; i < columnsAll.length; i++) {
|
||||
if (columnsAll[i].dataIndex == 'statNode') {
|
||||
columnsAll.splice(i, 1)
|
||||
i--
|
||||
}
|
||||
}
|
||||
}
|
||||
getAction(`sys/dictItem/page`,params).then(res=>{
|
||||
if(res.success){
|
||||
this.tableData=[...res.result.records]
|
||||
this.dataFlag=true
|
||||
return columnsAll
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
//获取列表数据
|
||||
loadData() {
|
||||
this.dataFlag = false
|
||||
let params = {
|
||||
...this.queryParams,
|
||||
dictId: this.record.id
|
||||
}
|
||||
getAction(`sys/dictItem/page`, params).then(res => {
|
||||
if (res.success) {
|
||||
this.tableData = [...res.result.records]
|
||||
this.dataFlag = true
|
||||
}
|
||||
})
|
||||
},
|
||||
//编辑
|
||||
actionEdit(val){
|
||||
this.$emit('editDict',val,true)
|
||||
actionEdit(val) {
|
||||
this.$emit('editDict', val, true)
|
||||
},
|
||||
//删除
|
||||
onDelete(val){
|
||||
this.$emit('deleteDict',val.id,true)
|
||||
onDelete(val) {
|
||||
this.$emit('deleteDict', val.id, true)
|
||||
},
|
||||
onSelectChange(selectedRowKeys) {
|
||||
this.selectedRowKeys = selectedRowKeys;
|
||||
this.$emit('selected',this.selectedRowKeys)
|
||||
this.selectedRowKeys = selectedRowKeys
|
||||
this.$emit('selected', this.selectedRowKeys)
|
||||
},
|
||||
|
||||
//点击页数
|
||||
onChangePage(page,pageSize){
|
||||
onChangePage(page, pageSize) {
|
||||
this.queryParams.pageNo = page
|
||||
this.$emit('ok',this.queryParams)
|
||||
this.$emit('ok', this.queryParams)
|
||||
// this.loadData()
|
||||
},
|
||||
//一页显示条数
|
||||
SizeChange(page,pageSize){
|
||||
SizeChange(page, pageSize) {
|
||||
this.queryParams.pageSize = pageSize
|
||||
this.queryParams.pageNo=1
|
||||
this.$emit('ok',this.queryParams)
|
||||
this.queryParams.pageNo = 1
|
||||
this.$emit('ok', this.queryParams)
|
||||
|
||||
// this.loadData()
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.list-table{
|
||||
.tag-con-table{
|
||||
.action-edit{
|
||||
.list-table {
|
||||
.tag-con-table {
|
||||
.action-edit {
|
||||
margin-right: 5px;
|
||||
}
|
||||
.action-delete{
|
||||
color:red;
|
||||
|
||||
.action-delete {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
.page{
|
||||
|
||||
.page {
|
||||
margin-top: 20px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@@ -270,6 +270,9 @@
|
||||
this.textColor(this.$t('projectDetails'))
|
||||
this.textTitle = this.$t('projectDetails')
|
||||
} else if (this.$route.query.type == '102') {
|
||||
if (this.$route.query.dutyTerritoryName){
|
||||
this.areaOfResponsibilityList = this.$route.query
|
||||
}
|
||||
this.textColor(this.$t('listOfRegulations'))
|
||||
this.textTitle = this.$t('listOfRegulations')
|
||||
} else if (this.$route.query.type == '103') {
|
||||
@@ -285,6 +288,9 @@
|
||||
this.textColor(this.$t('TaskParameterCollection'))
|
||||
this.textTitle = this.$t('TaskParameterCollection')
|
||||
} else if (this.$route.query.type == '106') {
|
||||
if (this.$route.query.dutyTerritoryName){
|
||||
this.areaOfResponsibility = this.$route.query
|
||||
}
|
||||
this.textColor(this.$t('certificationList'))
|
||||
this.textTitle = this.$t('certificationList')
|
||||
}
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
myChart.on('click', (params) => {
|
||||
console.log(params)
|
||||
let query = {
|
||||
title: params.seriesName,
|
||||
title: params.seriesName+'-'+params.name,
|
||||
projectLibraryId: this.$route.query.id
|
||||
}
|
||||
if (params.seriesName === this.$t('certificationTaskConfirmation')) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:title="$t('Add')"
|
||||
:title="$t('add')"
|
||||
:maskClosable="false"
|
||||
:width="1000"
|
||||
placement="right"
|
||||
|
||||
@@ -295,6 +295,13 @@
|
||||
visible: false,
|
||||
queryParam: {},
|
||||
columnsAll: [
|
||||
{
|
||||
title: this.$t('statisticalNodes'),
|
||||
align: 'left',
|
||||
dataIndex: 'firstLevelDutyTerritory',
|
||||
ellipsis: true,
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: this.$t('areaOfResponsibility'),
|
||||
align: 'left',
|
||||
|
||||
@@ -150,21 +150,21 @@
|
||||
let query = {}
|
||||
if (params.seriesName == this.$t('regulatoryTaskConfirmation')) {
|
||||
query = {
|
||||
title: params.seriesName,
|
||||
title: params.seriesName+'-'+params.name,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
operatorType: 'queryFGTaskToConfirmStatistics',
|
||||
status: params.data.status
|
||||
}
|
||||
} else if (params.seriesName == this.$t('designCompliance')) {
|
||||
query = {
|
||||
title: params.seriesName,
|
||||
title: params.seriesName+'-'+params.name,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
operatorType: 'queryDesignStatistics',
|
||||
status: params.data.status
|
||||
}
|
||||
} else if (params.seriesName == this.$t('verifyCompliance')) {
|
||||
query = {
|
||||
title: params.seriesName,
|
||||
title: params.seriesName+'-'+params.name,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
operatorType: 'queryVerifyStatistics',
|
||||
status: params.data.status
|
||||
|
||||
+175
@@ -0,0 +1,175 @@
|
||||
<template>
|
||||
<a-modal
|
||||
:title="title"
|
||||
:width="800"
|
||||
:visible="visible"
|
||||
:confirm-loading="confirmLoading"
|
||||
:maskClosable="false"
|
||||
@cancel="visible = false"
|
||||
>
|
||||
<template slot="footer">
|
||||
<a-button key="back" @click="visible = false">
|
||||
{{$t('cancel')}}
|
||||
</a-button>
|
||||
</template>
|
||||
<!-- <div style="text-align: right;margin-bottom: 10px">-->
|
||||
<!-- <div @click="handleExport" class="operator-text">-->
|
||||
<!-- <a-icon type="export" :rotate="-90"/>-->
|
||||
<!-- {{$t('export')}}-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<a-table
|
||||
ref="table"
|
||||
:components="drag(columns,'columns')"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%',y:400}"
|
||||
:data-source="dataSource"
|
||||
@change="tableOnChange"
|
||||
:columns="columns"
|
||||
>
|
||||
<!-- -->
|
||||
<a slot="areaOfResponsibility" @click="areaOfResponsibilityClick(result)" slot-scope="text,result">
|
||||
{{text}}
|
||||
</a>
|
||||
</a-table>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAction, postAction, downloadFile } from '@/api/manage'
|
||||
import moment from 'moment'
|
||||
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
|
||||
|
||||
export default {
|
||||
name: 'responsibilityList',
|
||||
mixins: [ResizeHeader, ResizeColumnProvide],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
title: '',
|
||||
confirmLoading: false,
|
||||
loading: false,
|
||||
dataSource: [],
|
||||
queryParam: {},
|
||||
projectInfo: {},
|
||||
url: {
|
||||
groupByTerritoryXls: '/project/projectLibraryBase/exportProjectDetailsStatisticsGroupByTerritoryXls',
|
||||
GroupByTerritory: '/project/projectLibraryBase/getProjectDetailsStatisticsGroupByTerritory'
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('areaOfResponsibility'),
|
||||
dataIndex: 'dutyTerritoryName',
|
||||
align: 'left',
|
||||
width: 150,
|
||||
ellipsis: true,
|
||||
sorter: true,
|
||||
scopedSlots: { customRender: 'areaOfResponsibility' }
|
||||
},
|
||||
{
|
||||
title: this.$t('Quantity'),
|
||||
dataIndex: 'amount',
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 150,
|
||||
sorter: true
|
||||
},
|
||||
{
|
||||
title: this.$t('proportionWithInTheAreaOfResponsibility'),
|
||||
dataIndex: 'percentage',
|
||||
align: 'left',
|
||||
ellipsis: true,
|
||||
width: 240,
|
||||
sorter: true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
getData(data, projectInfo) {
|
||||
this.visible = true
|
||||
this.projectInfo = projectInfo
|
||||
this.title = data.title
|
||||
this.queryParam = data
|
||||
this.getList()
|
||||
},
|
||||
tableOnChange(pagination, filters, sorter) {
|
||||
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
|
||||
if (sorter.columnKey == 'attestationRank_dictText') {
|
||||
this.orderByField = 'attestationRank'
|
||||
} else if (sorter.columnKey == 'dutyTerritory_dictText') {
|
||||
this.orderByField = 'dutyTerritory'
|
||||
} else if (sorter.columnKey == 'designDeliverableTypeName') {
|
||||
this.orderByField = 'designDeliverableType'
|
||||
} else if (sorter.columnKey == 'verifyDeliverableTypeName') {
|
||||
this.orderByField = 'verifyDeliverableType'
|
||||
} else if (sorter.columnKey == 'designDutyIdName') {
|
||||
this.orderByField = 'designDutyId'
|
||||
} else if (sorter.columnKey == 'verifyDutyIdName') {
|
||||
this.orderByField = 'verifyDutyId'
|
||||
} else if (sorter.columnKey == 'verifyFlowStatusName') {
|
||||
this.orderByField = 'verifyFlowStatus'
|
||||
} else if (sorter.columnKey == 'designFlowStatusName') {
|
||||
this.orderByField = 'designFlowStatus'
|
||||
} else {
|
||||
this.orderByField = sorter.columnKey
|
||||
}
|
||||
this.getList()
|
||||
},
|
||||
getList() {
|
||||
this.loading = true
|
||||
let query = {
|
||||
...this.queryParam,
|
||||
orderBy: this.orderBy,
|
||||
orderByField: this.orderByField
|
||||
}
|
||||
getAction(this.url.GroupByTerritory, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.loading = false
|
||||
this.dataSource = res.result.dataList || []
|
||||
} else {
|
||||
this.loading = false
|
||||
this.dataSource = []
|
||||
}
|
||||
})
|
||||
},
|
||||
handleExport() {
|
||||
downloadFile(this.url.groupByTerritoryXls, this.title + '.xls', this.queryParam)
|
||||
},
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
},
|
||||
areaOfResponsibilityClick(item) {
|
||||
let type = ''
|
||||
if (this.queryParam.operatorType == 'queryFGTaskToConfirmStatistics' ||
|
||||
this.queryParam.operatorType == 'queryDesignStatistics' ||
|
||||
this.queryParam.operatorType == 'queryVerifyStatistics') {
|
||||
type = '102'
|
||||
} else {
|
||||
type = '106'
|
||||
}
|
||||
let query = {
|
||||
id: this.projectInfo.id,
|
||||
projectName: this.projectInfo.projectName,
|
||||
projectNameId: this.projectInfo.projectNameId,
|
||||
targetMarket: this.projectInfo.targetMarket,
|
||||
studioEngineer: this.projectInfo.studioEngineer,
|
||||
type: type,
|
||||
dutyTerritoryName: item.dutyTerritoryName
|
||||
}
|
||||
let newUrl = this.$router.resolve({
|
||||
path: '/ProjectDetails',
|
||||
query: query
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
+136
-169
@@ -1,108 +1,116 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:title="title"
|
||||
:maskClosable="false"
|
||||
:width="1000"
|
||||
placement="right"
|
||||
:closable="true"
|
||||
@close="handleCancel"
|
||||
:visible="visible"
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<div class="box-content" v-if="visible">
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainTopNum}}</span>
|
||||
<div>
|
||||
<a-drawer
|
||||
:title="title"
|
||||
:maskClosable="false"
|
||||
:width="1000"
|
||||
placement="right"
|
||||
:closable="true"
|
||||
@close="handleCancel"
|
||||
:visible="visible"
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<div class="box-content" v-if="visible">
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainTopNum}}</span>
|
||||
</div>
|
||||
<div id="main-top"></div>
|
||||
</div>
|
||||
<div id="main-top"></div>
|
||||
</div>
|
||||
<div class="box-content-top" v-if="projectQuery.name == this.$t('designVerification')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainLeftNum}}</span>
|
||||
<div class="box-content-top" v-if="projectQuery.name == this.$t('designVerification')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainLeftNum}}</span>
|
||||
</div>
|
||||
<div id="main-left"></div>
|
||||
</div>
|
||||
<div id="main-left"></div>
|
||||
</div>
|
||||
<div class="box-content-top" v-if="projectQuery.name == this.$t('verificationAndVerification')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainRightNum}}</span>
|
||||
<div class="box-content-top" v-if="projectQuery.name == this.$t('verificationAndVerification')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainRightNum}}</span>
|
||||
</div>
|
||||
<div id="main-right"></div>
|
||||
</div>
|
||||
<div id="main-right"></div>
|
||||
</div>
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainTopNumOne}}</span>
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('listPublishing') || projectQuery.name == this.$t('responsibilityConfirmation')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainTopNumOne}}</span>
|
||||
</div>
|
||||
<div id="main-top-one"></div>
|
||||
</div>
|
||||
<div id="main-top-one"></div>
|
||||
</div>
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('getStarted') || projectQuery.name == this.$t('certificationStartOne')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainLeftNumOne}}</span>
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('getStarted') || projectQuery.name == this.$t('certificationStartOne')">
|
||||
<div class="total-text">
|
||||
<span>{{$t('totalTable')+' : '+mainLeftNumOne}}</span>
|
||||
</div>
|
||||
<div id="main-right-one"></div>
|
||||
</div>
|
||||
<div id="main-right-one"></div>
|
||||
</div>
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('certificationEnd') || projectQuery.name == this.$t('certificationSubmission')">
|
||||
<div class="total-text-text" :class="{'total-text-text-cntop':long == 'zh-cn' ? true:false,
|
||||
<div class="box-content-top"
|
||||
v-if="projectQuery.name == this.$t('certificationEnd') || projectQuery.name == this.$t('certificationSubmission')">
|
||||
<div class="total-text-text" :class="{'total-text-text-cntop':long == 'zh-cn' ? true:false,
|
||||
'total-text-text-entop':long == 'zh-cn' ? false:true}">
|
||||
<span>{{$t('totalTable')+' : '+mainBottomNum}}</span>
|
||||
<span>{{$t('totalTable')+' : '+mainBottomNum}}</span>
|
||||
</div>
|
||||
<div class="box-content-text">
|
||||
<div class="box-content-text-text" @click="boxContentClick(0)">
|
||||
{{$t('whole')}}
|
||||
</div>
|
||||
<div class="box-content-text-text" @click="boxContentClick(1)">
|
||||
{{$t('completeVehicle')}}
|
||||
</div>
|
||||
<div class="box-content-text-text" @click="boxContentClick(2)">
|
||||
{{$t('components')}}
|
||||
</div>
|
||||
</div>
|
||||
<div id="main-bottom"></div>
|
||||
</div>
|
||||
<div class="box-content-text">
|
||||
<div class="box-content-text-text" @click="boxContentClick(0)">
|
||||
{{$t('whole')}}
|
||||
</div>
|
||||
<div class="box-content-text-text" @click="boxContentClick(1)">
|
||||
{{$t('completeVehicle')}}
|
||||
</div>
|
||||
<div class="box-content-text-text" @click="boxContentClick(2)">
|
||||
{{$t('components')}}
|
||||
</div>
|
||||
</div>
|
||||
<div id="main-bottom"></div>
|
||||
</div>
|
||||
<div class="table-page-search-wrapper"
|
||||
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="12" :sm="10">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('Statisticalmodels')">
|
||||
<span>{{ $t('Statisticalmodels') }}</span>
|
||||
<div class="table-page-search-wrapper"
|
||||
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="12" :sm="10">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('Statisticalmodels')">
|
||||
<span>{{ $t('Statisticalmodels') }}</span>
|
||||
</div>
|
||||
<a-radio-group class="box-input"
|
||||
v-model="queryParam.value" @change="onChange">
|
||||
<a-radio :value="1">
|
||||
{{$t('Thepercentage')}}
|
||||
</a-radio>
|
||||
<a-radio :value="2">
|
||||
{{$t('Quantity')}}
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<a-radio-group class="box-input"
|
||||
v-model="queryParam.value" @change="onChange">
|
||||
<a-radio :value="1">
|
||||
{{$t('Thepercentage')}}
|
||||
</a-radio>
|
||||
<a-radio :value="2">
|
||||
{{$t('Quantity')}}
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="box-content-top-one"
|
||||
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
|
||||
<div id="main-left-parameter"></div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="box-content-top-one"
|
||||
v-if="this.projectQuery.name == this.$t('getStarted') || this.projectQuery.name == this.$t('certificationStartOne')">
|
||||
<div id="main-left-parameter"></div>
|
||||
</div>
|
||||
</div>
|
||||
</a-spin>
|
||||
<div class="drawer-bootom-button">
|
||||
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
|
||||
</div>
|
||||
</a-spin>
|
||||
<div class="drawer-bootom-button">
|
||||
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</a-drawer>
|
||||
<responsibilityList ref="responsibilityListRef"/>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as echarts from 'echarts'
|
||||
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
|
||||
import responsibilityList from './responsibilityList'
|
||||
|
||||
export default {
|
||||
name: 'statistics',
|
||||
components: {
|
||||
responsibilityList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
@@ -138,6 +146,7 @@
|
||||
submitquantity: [],
|
||||
syncReportpercentage: [],
|
||||
syncReportquantity: [],
|
||||
projectInfo:{},
|
||||
long: localStorage.getItem('language') || 'zh-cn',
|
||||
certificationProgressMap: {},
|
||||
url: {
|
||||
@@ -150,8 +159,9 @@
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
},
|
||||
getData(val) {
|
||||
getData(val,projectInfo) {
|
||||
this.visible = true
|
||||
this.projectInfo = projectInfo
|
||||
this.title = val.name
|
||||
this.projectQuery = val
|
||||
this.getEchart()
|
||||
@@ -201,7 +211,7 @@
|
||||
},
|
||||
|
||||
getEcharts(chart, title, color, data) {
|
||||
var myChart = echarts.init(document.getElementById(chart))
|
||||
let myChart = echarts.init(document.getElementById(chart))
|
||||
myChart.setOption({
|
||||
title: {
|
||||
text: title
|
||||
@@ -245,31 +255,59 @@
|
||||
}
|
||||
]
|
||||
})
|
||||
myChart.off('click') // 重点代码
|
||||
myChart.on('click', (params) => {
|
||||
let query = {}
|
||||
if (params.seriesName == this.$t('regulatoryTaskConfirmation')) {
|
||||
query = {
|
||||
title: params.seriesName,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
title: params.seriesName + '-' + params.name,
|
||||
projectLibraryId: this.projectQuery.projectId,
|
||||
operatorType: 'queryFGTaskToConfirmStatistics',
|
||||
status: params.data.status
|
||||
}
|
||||
} else if (params.seriesName == this.$t('designCompliance')) {
|
||||
query = {
|
||||
title: params.seriesName,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
title: params.seriesName + '-' + params.name,
|
||||
projectLibraryId: this.projectQuery.projectId,
|
||||
operatorType: 'queryDesignStatistics',
|
||||
status: params.data.status
|
||||
}
|
||||
} else if (params.seriesName == this.$t('verifyCompliance')) {
|
||||
query = {
|
||||
title: params.seriesName,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
title: params.seriesName + '-' + params.name,
|
||||
projectLibraryId: this.projectQuery.projectId,
|
||||
operatorType: 'queryVerifyStatistics',
|
||||
status: params.data.status
|
||||
}
|
||||
} else if (params.seriesName === this.$t('certificationTaskConfirmation')) {
|
||||
query = {
|
||||
title: params.seriesName + '-' + params.name,
|
||||
projectLibraryId: this.projectQuery.projectId,
|
||||
operatorType: 'queryRZTaskToConfirmStatistics',
|
||||
status: params.data.status
|
||||
}
|
||||
} else if (params.seriesName === this.$t('preHomoFlow')) {
|
||||
query = {
|
||||
title: params.seriesName + '-' + params.name,
|
||||
projectLibraryId: this.projectQuery.projectId,
|
||||
operatorType: 'queryPrehomoStatistics',
|
||||
status: params.data.status
|
||||
}
|
||||
} else if (params.seriesName === this.$t('CertificationProgress')) {
|
||||
query = {
|
||||
title: params.seriesName + '-' + params.name,
|
||||
projectLibraryId: this.projectQuery.projectId,
|
||||
status: params.data.status
|
||||
}
|
||||
if (this.num == '0') {
|
||||
query.operatorType = 'queryCertificationProgressStatisticsAll'
|
||||
} else if (this.num == '1') {
|
||||
query.operatorType = 'queryCertificationProgressStatisticsCar'
|
||||
} else if (this.num == '2') {
|
||||
query.operatorType = 'queryCertificationProgressStatisticsPart'
|
||||
}
|
||||
}
|
||||
this.$refs.responsibilityListRef.getData(query)
|
||||
this.$refs.responsibilityListRef.getData(query,this.projectInfo)
|
||||
})
|
||||
},
|
||||
|
||||
@@ -500,7 +538,7 @@
|
||||
this.mainLeftNumOne += res.taskAffirmStatusCount
|
||||
})
|
||||
}
|
||||
this.getEchartsOne('main-right-one', this.$t('preHomoFlow'), color, data)
|
||||
this.getEcharts('main-right-one', this.$t('preHomoFlow'), color, data)
|
||||
},
|
||||
|
||||
mainBottomEcharts(dataSource) {
|
||||
@@ -569,79 +607,7 @@
|
||||
this.mainBottomNum += res.certificationProgressCount
|
||||
})
|
||||
}
|
||||
this.getEchartsOne('main-bottom', this.$t('CertificationProgress'), color, data)
|
||||
},
|
||||
|
||||
getEchartsOne(chart, title, color, data) {
|
||||
var myChart = echarts.init(document.getElementById(chart))
|
||||
myChart.setOption({
|
||||
title: {
|
||||
text: title
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
textStyle: {
|
||||
fontWeight: 'normal',
|
||||
fontSize: 14,
|
||||
color: '#040B29',
|
||||
fontFamily: 'BlueSkyNoto'
|
||||
},
|
||||
formatter: function(parms) {
|
||||
let str = parms.marker + ' ' + parms.data.name + ' ' + parms.data.value + ' (' + parms.percent + '%)'
|
||||
return str
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
itemWidth: 12,
|
||||
itemHeight: 12,
|
||||
bottom: '0',
|
||||
left: 'center',
|
||||
itemGap: 30,
|
||||
icon: 'circle'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: title,
|
||||
type: 'pie',
|
||||
radius: ['40%', '54%'],
|
||||
avoidLabelOverlap: false,
|
||||
label: {
|
||||
show: false,
|
||||
position: 'center'
|
||||
},
|
||||
labelLine: {
|
||||
show: false
|
||||
},
|
||||
color: color,
|
||||
data: data
|
||||
}
|
||||
]
|
||||
})
|
||||
myChart.off('click') // 重点代码
|
||||
myChart.on('click', (params) => {
|
||||
console.log(params)
|
||||
let query = {
|
||||
title: params.seriesName,
|
||||
projectLibraryId: this.$route.query.id
|
||||
}
|
||||
if (params.seriesName === this.$t('certificationTaskConfirmation')) {
|
||||
query.operatorType = 'queryRZTaskToConfirmStatistics'
|
||||
query.status = params.data.status
|
||||
} else if (params.seriesName === this.$t('preHomoFlow')) {
|
||||
query.operatorType = 'queryPrehomoStatistics'
|
||||
query.status = params.data.status
|
||||
} else if (params.seriesName === this.$t('CertificationProgress')) {
|
||||
if (this.num == '0') {
|
||||
query.operatorType = 'queryCertificationProgressStatisticsAll'
|
||||
} else if (this.num == '1') {
|
||||
query.operatorType = 'queryCertificationProgressStatisticsCar'
|
||||
} else if (this.num == '2') {
|
||||
query.operatorType = 'queryCertificationProgressStatisticsPart'
|
||||
}
|
||||
query.status = params.data.status
|
||||
}
|
||||
this.$refs.responsibilityListRef.getData(query)
|
||||
})
|
||||
this.getEcharts('main-bottom', this.$t('CertificationProgress'), color, data)
|
||||
},
|
||||
|
||||
boxContentClick(num) {
|
||||
@@ -1034,6 +1000,7 @@
|
||||
.total-text-text-entop {
|
||||
right: 290px;
|
||||
}
|
||||
|
||||
.box-title-text {
|
||||
line-height: 1.4;
|
||||
display: flex;
|
||||
|
||||
@@ -92,6 +92,9 @@
|
||||
<div style="overflow:visible;">
|
||||
<div class="box-top-content-left">
|
||||
<div class="box-top-content-left-text"
|
||||
:class="{'box-top-content-left-text-projectStatus':
|
||||
item.projectInfo.projectStatus == '4786d0f0d230454e99a9fce15579eabf' ||
|
||||
item.projectInfo.projectStatus == 'f737d063de754f2ab1bf51cd4118d04a'?true:false}"
|
||||
v-for="(item,index) in timeData" :key="index">
|
||||
<a-tooltip overlayClassName="overlayClassName" placement="topLeft">
|
||||
<template slot="title">
|
||||
@@ -135,19 +138,23 @@
|
||||
v-if="!val.g"
|
||||
v-for="(val,indexTwo) in item.data[0]">
|
||||
<!-- <div class="process-content-right-top" v-if="indexOne % 2 == 0" :title="val.name">{{ val.name }}</div>-->
|
||||
<div @click="statusClick(val)" class="process-content-right-button" :title="val.name">{{ val.name }}
|
||||
<div @click="statusClick(val,item.projectInfo)" class="process-content-right-button"
|
||||
:title="val.name">{{ val.name }}
|
||||
</div>
|
||||
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
|
||||
<template slot="title">
|
||||
<span>{{ val.time.slice(0, 11) }}</span>
|
||||
</template>
|
||||
<img @click="statusClick(val)" v-if="val.status == 1" src="../../../assets/huiBottom.png"
|
||||
<img @click="statusClick(val,item.projectInfo)" v-if="val.status == 1"
|
||||
src="../../../assets/huiBottom.png"
|
||||
class="process-content-left"
|
||||
alt="">
|
||||
<img @click="statusClick(val)" v-else-if="val.status == 2" src="../../../assets/kongBottom.png"
|
||||
<img @click="statusClick(val,item.projectInfo)" v-else-if="val.status == 2"
|
||||
src="../../../assets/kongBottom.png"
|
||||
class="process-content-left"
|
||||
alt="">
|
||||
<img @click="statusClick(val)" v-else-if="val.status == 3" src="../../../assets/shiBottom.png"
|
||||
<img @click="statusClick(val,item.projectInfo)" v-else-if="val.status == 3"
|
||||
src="../../../assets/shiBottom.png"
|
||||
class="process-content-left"
|
||||
alt="">
|
||||
</a-tooltip>
|
||||
@@ -601,8 +608,8 @@
|
||||
downloadFile('/project/ProjectStatusBoardController/exportXls',
|
||||
this.$t('GRPSystemProjectProgressStatistics') + '.xls', query, this.Deselect)
|
||||
},
|
||||
statusClick(val) {
|
||||
this.$refs.statisticsRef.getData(val)
|
||||
statusClick(val, projectInfo) {
|
||||
this.$refs.statisticsRef.getData(val, projectInfo)
|
||||
},
|
||||
boxContentClick(num) {
|
||||
let boxContentTextColor = document.getElementsByClassName('box-header-text-color')
|
||||
@@ -1024,4 +1031,7 @@
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
.box-top-content-left-text-projectStatus{
|
||||
color: #9C9FAC;
|
||||
}
|
||||
</style>
|
||||
+48
-1
@@ -2,7 +2,8 @@
|
||||
<div class="box">
|
||||
<div class="box-text">
|
||||
<div class="header-text">
|
||||
{{query.TaskKey == 'zrrqr' || query.TaskKey == 'dezrrqr' || query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'dezrrtjjfw'
|
||||
{{query.TaskKey == 'zrrqr' || query.TaskKey == 'dezrrqr' || query.TaskKey == 'zrrtjjfw' || query.TaskKey ==
|
||||
'dezrrtjjfw'
|
||||
? $t('personLiableConfirm'):$t('sponsorReview')}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -58,6 +59,26 @@
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24" v-if="isDeliveryTime">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('expectedDeliveryTime')">{{$t('expectedDeliveryTime')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'deliveryTime'">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('expectedDeliveryTime')"
|
||||
@change="dateChange({db_field_name:'deliveryTime'})"
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.deliveryTime"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
@@ -105,6 +126,7 @@
|
||||
import { getAction, postAction, putAction, deleteAction } from '@/api/manage'
|
||||
import uploadFile from '@/components/uploadFile/file'
|
||||
import SelectedBy from '@/components/SelectedBy/index'
|
||||
import moment from 'moment'
|
||||
|
||||
export default {
|
||||
name: 'reviewedByThePersonInCharge',
|
||||
@@ -117,6 +139,7 @@
|
||||
return {
|
||||
formInline: {},
|
||||
isPersonnel: false,
|
||||
isDeliveryTime: false,
|
||||
reviewResult: {
|
||||
'launch': this.$t('Launch'),
|
||||
'Compliance': this.$t('accord'),
|
||||
@@ -135,6 +158,13 @@
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
deliveryTime: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('expectedDeliveryTime') + this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
approvalOpinion: [
|
||||
{
|
||||
required: true,
|
||||
@@ -188,6 +218,11 @@
|
||||
submit(callBack) {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
if (this.formInline.disposeResult == 'To be tracked') {
|
||||
if (this.query.TaskKey == 'zrrtjjfw' || this.query.TaskKey == 'dezrrtjjfw') {
|
||||
this.formInline.approvalOpinion = this.formInline.approvalOpinion + ';' + this.$t('expectedDeliveryTime') + ':' + this.formInline.deliveryTime
|
||||
}
|
||||
}
|
||||
callBack(this.formInline)
|
||||
}
|
||||
})
|
||||
@@ -202,10 +237,18 @@
|
||||
} else {
|
||||
this.$refs.SelectedByRef.visible = false
|
||||
this.isPersonnel = false
|
||||
this.isDeliveryTime = false
|
||||
this.formInline.secondChargePersonUserId = ''
|
||||
this.formInline.dezrrSubmitUserName = ''
|
||||
this.formInline.dezrrSubmitUserId = ''
|
||||
}
|
||||
if (value.target.value == 'To be tracked') {
|
||||
this.isDeliveryTime = true
|
||||
} else {
|
||||
this.isDeliveryTime = false
|
||||
this.formInline.deliveryTime = ''
|
||||
}
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
//转办接口
|
||||
SelectedByForm(userIds, name) {
|
||||
@@ -248,6 +291,10 @@
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ruleForm.validateField([this.uploadName])
|
||||
})
|
||||
},
|
||||
dateChange(item) {
|
||||
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
|
||||
this.formInline = { ...this.formInline }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user