This commit is contained in:
sunzhenyu 2020-10-12 09:27:07 +08:00
commit 7d1a852322
20 changed files with 240 additions and 38 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -6,10 +6,24 @@ import psdSystem from '@/assets/iscs_picture/iscs-psd.png';
import psdRight from '@/assets/iscs_picture/iscs-psd-right.png';
import fireBlue from '@/assets/iscs_picture/iscs-fire-blue.png';
import fireRed from '@/assets/iscs_picture/iscs-fire-red.png';
import envPersonDoor from '@/assets/iscs_picture/renfangmen.png'
import envPersonDoor from '@/assets/iscs_picture/renfangmen.png';
import hand from '@/assets/iscs_picture/hand.png';
import fmBlue from '@/assets/iscs_picture/fm-blue.png';
import fmGray from '@/assets/iscs_picture/fm-gray.png';
import fmGreen from '@/assets/iscs_picture/fm-green.png';
import airCond from '@/assets/iscs_picture/kongtiao.png';
import airCondMul from '@/assets/iscs_picture/mul-kongtiao.png';
import setting from '@/assets/iscs_picture/setting.png';
import blowerRedLeft from '@/assets/iscs_picture/gufengji-red-l.png';
import blowerGrayLeft from '@/assets/iscs_picture/gufengji-gray-l.png';
import blowerRedRight from '@/assets/iscs_picture/gufengji-red-r.png';
import blowerGrayRight from '@/assets/iscs_picture/gufengji-gray-r.png';
import iscsAPF from '@/assets/iscs_picture/iscs_APF.png';
import drum from '@/assets/iscs_picture/drum.png';
import exhaustFan from '@/assets/iscs_picture/exhaustFan.png'
import waterCooler from '@/assets/iscs_picture/ZSDF533.png';
import textBgBluePoint from '@/assets/iscs_picture/textBgBluePoint.png';
import ventilationFan from '@/assets/iscs_picture/ventilationFan.png'
const pictureObj = {
'psdLeft': psdLeft,
@ -18,7 +32,23 @@ const pictureObj = {
'APF': iscsAPF,
'envPersonDoor': envPersonDoor,
's': fireBlue,
'a': fireRed
'a': fireRed,
hand,
fmBlue,
fmGray,
fmGreen,
airCond,
airCondMul,
setting,
blowerRedLeft,
blowerGrayLeft,
blowerRedRight,
blowerGrayRight,
drum,
exhaustFan,
waterCooler,
textBgBluePoint,
ventilationFan
};
export default class Picture extends Group {
constructor(device) {
@ -39,7 +69,9 @@ export default class Picture extends Group {
});
this.imageButton = new Image({
zlevel: model.zlevel,
z: model.z,
z: model.z,
origin: [model.width/2, model.height/2],
rotation: (model.rotation||0)*Math.PI/180,
style: {
x: 0,
y: 0,

View File

@ -1,8 +1,8 @@
<template>
<el-dialog :title="title" :visible.sync="dialogVisible" width="1200px" :before-close="doClose" top="50px" center custom-class="sceneModifyOut">
<el-dialog :title="title" :visible.sync="dialogVisible" :before-close="doClose" top="50px" center custom-class="sceneModifyOut" fullscreen>
<el-form ref="form" :model="formModel" label-width="120px" class="sceneModify" @submit.native.prevent>
<!-- :rules="rules" -->
<el-table :data="actionList" border style="width:100%;" height="550" :span-method="objectSpanMethod">
<el-table :data="actionList" border style="width:1250px;margin: 0 auto;" height="500" :span-method="objectSpanMethod">
<el-table-column label="步骤名称" width="100">
<template slot-scope="scope">
<div v-if="stepVOs[scope.row.id]">
@ -10,14 +10,15 @@
</div>
</template>
</el-table-column>
<el-table-column label="动作内容" width="300">
<el-table-column label="动作内容" width="350">
<template slot-scope="scope">
<!-- v-model="scope.row.id" -->
<el-checkbox v-if="isModify" v-model="checkBoxActionList[scope.row.id].status" :disabled="checkBoxActionList[scope.row.id].disabled" class="checkBoxAction" @change="((val)=>{changeSelectActionId(val, scope.row.id, scope.$index)})" />
<el-radio v-if="isOperate" v-model="radioBoxAction" :label="scope.row.id" name="operateAction" class="checkBoxAction" @change="((val)=>{changeSelectRadioActionId(val, scope.row.id, scope.$index)})">{{ '' }}</el-radio>
<div v-if="dialogVisible">{{ covert(scope.row) }}</div>
</template>
</el-table-column>
<el-table-column label="语音识别关键词列表" width="300">
<el-table-column label="语音识别关键词列表" width="350">
<template slot-scope="scope">
<div v-if="commandEvaluationRuleVOs[scope.row.id]&&commandEvaluationRuleVOs[scope.row.id].keyWords">
<el-tag v-for="(tag,index) in commandEvaluationRuleVOs[scope.row.id].keyWords" :key="index" closable :disable-transitions="false" @close="handleClose(scope.row.id,index)">{{ tag }}</el-tag>
@ -107,18 +108,88 @@
</template>
</el-table-column>
</el-table>
<table class="operateStatistic">
<thead>
<tr>
<th class="operateStatisticLT">
<div class="operateStatisticLIn">每一项分值</div>
</th>
<th class="operateStatisticRT">
<div class="operateStatisticLIn">运营统计项列表</div>
</th>
</tr>
</thead>
<tr>
<td class="operateStatisticLB">
<el-input-number
v-model="formModel.operationStatisticVO.score"
:style="{width: '130px'}"
:min="0"
size="small"
:max="100"
:step="1"
/>
</td>
<td class="operateStatisticRB">
<el-table :data="formModel.operationStatisticVO.itemVOS" border style="width:651px;float:left;" height="240">
<el-table-column prop="description" label="简介" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.description" type="text" :style="{width: '125px'}" size="small" :maxlength="100" />
</template>
</el-table-column>
<el-table-column prop="type" label="类型" width="150">
<template slot-scope="scope">
<el-select v-model="scope.row.type" :style="{width: '125px'}" size="small">
<el-option
v-for="option in operationItemType"
:key="option.value"
:label="option.label"
:value="option.value"
/>
</el-select>
</template>
</el-table-column>
<el-table-column prop="actionId" label="关联步骤" width="150">
<template slot-scope="scope">
<el-button v-if="scope.row.type=='Time'" type="primary" size="small" class="selectStep" @click="selectStep(scope.row.actionId,scope.$index)">选择步骤</el-button>
<div v-if="scope.row.actionId">步骤id:{{ scope.row.actionId }}</div>
<!-- <el-select v-model="scope.row.stepId" :style="{width: '125px'}" size="small">
<el-option
v-for="option in stepVOs"
:key="option.id"
:label="option.description"
:value="option.id"
/>
</el-select> -->
</template>
</el-table-column>
<el-table-column prop="standardAnswer" label="非时间标准答案" width="150">
<template slot-scope="scope">
<el-input v-if="scope.row.type=='Non_Time'" v-model="scope.row.standardAnswer" type="text" :style="{width: '125px'}" size="small" :maxlength="100" />
</template>
</el-table-column>
<el-table-column label="操作" width="50">
<template slot-scope="scope">
<span class="el-icon-error deleteScene" @click="handleDelete(scope.$index)" />
</template>
</el-table-column>
</el-table>
<el-button type="primary" size="small" class="addOperateItem" @click="addItemVO">添加</el-button>
</td>
</tr>
</table>
</el-form>
<div style="margin-top:15px;">
<div style="margin-top:15px;width:1250px;margin-left:auto;margin-right:auto;">
<el-button v-if="!isModify" type="primary" @click="doModifyDes">编辑步骤描述</el-button>
<el-button v-if="isModify" type="success" @click="cancleModifyDes">取消编辑步骤描述</el-button>
<el-button v-if="idOperateStatistic" type="success" @click="doOperateStatistic">编辑运营统计</el-button>
<!-- <el-button v-if="idOperateStatistic" type="success" @click="doOperateStatistic">编辑运营统计</el-button> -->
</div>
<step-description
ref="addStepDescription"
@cancleDescription="cancleDescription"
@submitDescription="submitDescription"
/>
<operate-statistic ref="operateStatistic" @submitOperateStatistic="submitOperateStatistic" />
<!-- <operate-statistic ref="operateStatistic" @submitOperateStatistic="submitOperateStatistic" /> -->
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="doSave">保存</el-button>
@ -133,15 +204,15 @@ import ConstConfig from '@/scripts/ConstConfig';
import Cookies from 'js-cookie';
import {getScriptByIdNew} from '@/api/script';
import StepDescription from './stepDescription';
import OperateStatistic from './operateStatistic';
// import OperateStatistic from './operateStatistic';
import {covertOperate} from '@/views/newMap/displayNew/scriptDisplay/component/covertOperation';
import {updateCompetitionPracticalStep, getCompetitionPracticalSceneById} from '@/api/competition';
import {getPublishMapDetailById} from '@/api/jmap/map';
export default {
name:'ModifyStep',
components:{
StepDescription,
OperateStatistic
StepDescription
// OperateStatistic
},
props: {
title:{
@ -154,10 +225,14 @@ export default {
data() {
return {
isModify:false,
isOperate:false,
dialogVisible:false,
currentSelectStep:'',
actionList:[],
memberList:[],
operationItemType:[{label:'时间', value:'Time'}, {label:'非时间', value:'Non_Time'}],
checkBoxActionList:[],
radioBoxAction:'',
commandEvaluationRuleVOs:{},
currentstepAction:[],
startArray:[],
@ -173,7 +248,10 @@ export default {
scriptId:'',
commandEvaluationRuleVOs:[],
stepVOs:[],
operationStatisticVO:{}
operationStatisticVO:{
score:'',
itemVOS:[]
}
}
};
},
@ -215,6 +293,8 @@ export default {
this.commandEvaluationRuleVOs = commandEvaluationRuleVOs;
if (response.data.operationStatisticVO) {
this.formModel.operationStatisticVO = response.data.operationStatisticVO;
} else {
this.formModel.operationStatisticVO = {score:0, itemVOS:[]};
}
this.stepVOs = stepVOs;
});
@ -396,13 +476,13 @@ export default {
});
},
doConfirm() {
this.doUpdate(null);
this.doUpdate();
this.doClose();
},
doSave() {
this.doUpdate(null);
this.doUpdate();
},
doUpdate(operationStatisticVO) {
doUpdate() {
let commandEvaluationRuleVOs = Object.values(this.commandEvaluationRuleVOs);
const stepVOs = Object.values(this.stepVOs);
commandEvaluationRuleVOs = commandEvaluationRuleVOs.filter(eachData=>{
@ -423,10 +503,25 @@ export default {
delete data.deductScoreVisible;
});
}
// && operationStatisticVO.itemVOS
if (operationStatisticVO) {
this.formModel.operationStatisticVO = operationStatisticVO;
const itemVOS = this.formModel.operationStatisticVO.itemVOS;
if (itemVOS.length > 0) {
let result = true;
itemVOS.forEach(item=>{
delete item.id;
if (item.description && (item.actionId || item.standardAnswer)) {
result = result && true;
} else {
result = result && false;
}
});
if (!result) {
this.$messageBox('请填写运营统计项列表');
return false;
}
}
// if (operationStatisticVO) {
// this.formModel.operationStatisticVO = operationStatisticVO;
// }
this.formModel.commandEvaluationRuleVOs = commandEvaluationRuleVOs;
this.formModel.stepVOs = stepVOs;
updateCompetitionPracticalStep(this.formModel).then(res=>{
@ -460,6 +555,11 @@ export default {
this.currentstepAction.splice(data, 1);
}
},
changeSelectRadioActionId(val, actionId, index) {
this.formModel.operationStatisticVO.itemVOS[this.currentSelectStep].actionId = actionId;
this.isOperate = false;
this.currentSelectStep = '';
},
cancleDescription() {
this.currentstepAction.forEach(data=>{
this.checkBoxActionList[data.actionId].status = false;
@ -517,8 +617,19 @@ export default {
}
}
},
doOperateStatistic() {
this.$refs.operateStatistic.doShow(this.stepVOs, this.formModel.operationStatisticVO);
// doOperateStatistic() {
// this.$refs.operateStatistic.doShow(this.stepVOs, this.formModel.operationStatisticVO);
// },
handleDelete(index) {
this.formModel.operationStatisticVO.itemVOS.splice(index, 1);
},
addItemVO() {
this.formModel.operationStatisticVO.itemVOS.push({'description':'', actionId:'', type:'Time'});
},
selectStep(actionId, index) {
this.currentSelectStep = index;
this.radioBoxAction = actionId;
this.isOperate = true;
}
}
@ -538,6 +649,46 @@ export default {
}
.button-new-tag{
margin-bottom:10px;
}
.operateStatistic{
width: 1250px;
margin: 15px auto;
border: 1px #EBEEF5 solid;
}
.operateStatisticLT{
width: 300px;
padding: 10px;
border-bottom: 1px #EBEEF5 solid;
border-right: 1px solid #EBEEF5;
}
.operateStatisticLB{
padding: 10px;
border-right: 1px solid #EBEEF5;
}
.operateStatisticRT{
width: 950px;
padding: 10px;
border-bottom: 1px #EBEEF5 solid;
}
.operateStatisticRB{
padding: 10px;
}
.operateStatisticLIn{
text-align: left;
padding-left: 5px;
color: #909399;
}
.addOperateItem{
margin-left: 20px;
margin-top: 200px;
}
.deleteScene{
font-size: 24px;
color: #f00;
cursor: pointer;
}
.selectStep{
}
</style>
<style lang="scss">

View File

@ -9,6 +9,9 @@
<el-option v-for="(item, index) in typeList" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="旋转角度:" prop="rotation">
<el-input-number v-model="form.rotation" controls-position="right" size="small" />
</el-form-item>
<el-form-item label="宽度:" prop="width">
<el-input-number v-model="form.width" controls-position="right" :min="1" size="small" />
</el-form-item>
@ -47,7 +50,8 @@ export default {
type: '',
size: 10,
width: 50,
height: 50,
height: 50,
rotation: 0,
x: 10,
y: 10
},
@ -59,6 +63,22 @@ export default {
{ name: '蓝色FIRE', value: 's'},
{ name: '红色FIRE', value: 'a'},
{ name: 'APF', value: 'APF'},
{ name: '手动阀', value: 'hand'},
{ name: '蓝色-阀门', value: 'fmBlue'},
{ name: '灰色-阀门', value: 'fmGray'},
{ name: '绿色-阀门', value: 'fmGreen'},
{ name: '空调', value: 'airCond'},
{ name: '多联空调', value: 'airCondMul'},
{ name: '管件', value: 'setting'},
{ name: '汽包', value: 'drum' },
{ name: '红色-左侧-鼓风机', value: 'blowerRedLeft'},
{ name: '灰色-左侧-鼓风机', value: 'blowerGrayLeft'},
{ name: '红色-右侧-鼓风机', value: 'blowerRedRight'},
{ name: '灰色-右侧-鼓风机', value: 'blowerGrayRight'},
{ name: '排风机', value: 'exhaustFan' },
{ name: '冷水机', value: 'waterCooler'},
{ name: '顶部排风机', value: 'ventilationFan'},
{ name: '文字蓝色背景', value: 'textBgBluePoint'}
],
rules: {
@ -85,7 +105,8 @@ export default {
this.isUpdate = true;
this.form.code = model.code;
this.form.type = model.type;
this.form.size = model.size;
this.form.size = model.size;
this.form.rotation = model.rotation;
this.form.width = model.width;
this.form.height = model.height;
this.form.x = model.point.x;
@ -106,7 +127,8 @@ export default {
code: this.isUpdate ? this.form.code : getUID('IscsPicture', this.iscs.iscsPictureList),
_type: 'IscsPicture',
type: this.form.type,
size: this.form.size,
size: this.form.size,
rotation: this.form.rotation,
width: this.form.width,
height: this.form.height
};
@ -126,7 +148,8 @@ export default {
code: this.form.code,
_type: 'IscsPicture',
type: this.form.type,
size: this.form.size
size: this.form.size,
rotation: this.form.rotation,
};
this.$emit('deleteDataModel', rectModel);
},
@ -137,7 +160,8 @@ export default {
this.form = {
code: '',
type: '',
size: 10,
size: 10,
rotation: 0,
width: 50,
height: 50,
x: 10,

View File

@ -114,15 +114,6 @@ export default {
}).catch(() => {
this.$message.error('ISCS数据保存异常');
});
// {
// "graphData": "string",
// "id": 0,
// "lineCode": "string",
// "stationCode": "string",
// "system": "string",
// "totalSystem": "string",
// "userInterface": "string"
// }
}
}
};

View File

@ -57,6 +57,7 @@ export default {
};
if (this.stationId == 'mainHouseOne' || this.stationId == 'mainHouseTwo') {
this.bacground = 'rgba(0,0,0,0)';
this.scaleRate = window.innerWidth / 2200;
if (this.stationId == 'mainHouseOne') {
this.title = '黄山主变电所接线图';
} else {
@ -72,14 +73,17 @@ export default {
params.userInterface = 'hybrid';
} else if (this.stationId == 'parkingLot') {
this.title = '清凉山停车场接触网图';
this.scaleRate = window.innerWidth / 2000;
this.bacground = 'rgba(0,0,0,0)';
params.userInterface = 'catenary';
} else if (this.stationId == 'stationDepot') {
this.title = '新店车辆段接触网图';
this.bacground = 'rgba(0,0,0,0)';
this.scaleRate = window.innerWidth / 2000;
params.userInterface = 'catenary';
} else {
this.title = this.stationName + '牵引降压混合变电所主接线图';
this.scaleRate = window.innerWidth / 2200;
this.bacground = 'rgba(0,0,0,0)';
params.userInterface = 'combined';
}