|
@@ -56,11 +56,14 @@
|
|
|
</div>
|
|
|
<div class="collapse-item" v-if="activeName == 2">
|
|
|
<div v-if="renderData.length" style="height:258px;">
|
|
|
- <handsontable-component ref="handsontable"></handsontable-component>
|
|
|
+ <handsontable-component ref="handsontable" @change="changeTable"></handsontable-component>
|
|
|
</div>
|
|
|
<div v-if="!renderData.length" class="center" style="padding: 50px 0;box-sizing:border-box;">
|
|
|
<i class="icon-wushuju iconfont"></i> 暂无数据
|
|
|
</div>
|
|
|
+ <div v-if="pages.total>pages.size" class="right">
|
|
|
+ <pagination :page="pages" @change="changePage"></pagination>
|
|
|
+ </div>
|
|
|
<div class="center">
|
|
|
<el-button @click="undo">上一步</el-button>
|
|
|
<el-button v-show="renderData.length" @click="save">保存</el-button>
|
|
@@ -77,6 +80,11 @@ import formulaHandle from '@/components/config_point/step3_edit/formula_handle'
|
|
|
import splitHandle from '@/components/config_point/step3_edit/split_handle'
|
|
|
import handsontableComponent from "@/components/common/handsontable"
|
|
|
import dictionaryCas from '@/components/config_point/dictionaryCascader'
|
|
|
+import pagination from "@/components/common/myPagination"
|
|
|
+import handsonUtils from "@/utils/hasontableUtils"
|
|
|
+import {
|
|
|
+ groupCreatePointRelation
|
|
|
+} from "@/api/scan/request";
|
|
|
import {
|
|
|
mapGetters,
|
|
|
mapActions
|
|
@@ -107,7 +115,9 @@ export default {
|
|
|
default: function () {
|
|
|
return []
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ pages: Object,
|
|
|
+ queryParam: Object
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -168,21 +178,24 @@ export default {
|
|
|
formulaHandle,
|
|
|
splitHandle,
|
|
|
handsontableComponent,
|
|
|
- dictionaryCas
|
|
|
+ dictionaryCas,
|
|
|
+ pagination
|
|
|
},
|
|
|
methods: {
|
|
|
- getMain(param) {
|
|
|
- this.activeName = 0
|
|
|
- this.dealType = {}
|
|
|
- this.form1 = {
|
|
|
- dict: 1
|
|
|
- }
|
|
|
- this.$refs.dictionaryCas.setCascaderVal([])
|
|
|
- this.form2 = {
|
|
|
- ValueDescription: '',
|
|
|
- DataRuleType: '无需处理,直接使用'
|
|
|
+ getMain(param, pagechange) {
|
|
|
+ if (!pagechange) {
|
|
|
+ this.activeName = 0
|
|
|
+ this.dealType = {}
|
|
|
+ this.form1 = {
|
|
|
+ dict: 1
|
|
|
+ }
|
|
|
+ this.$refs.dictionaryCas.setCascaderVal([])
|
|
|
+ this.form2 = {
|
|
|
+ ValueDescription: '',
|
|
|
+ DataRuleType: '无需处理,直接使用'
|
|
|
+ }
|
|
|
+ this.unitObj = {}
|
|
|
}
|
|
|
- this.unitObj = {}
|
|
|
let params = {
|
|
|
data: {
|
|
|
DataSourceId: this.datasourceId,
|
|
@@ -197,32 +210,41 @@ export default {
|
|
|
},
|
|
|
//保存
|
|
|
save() {
|
|
|
- let data = this.hot.getSourceData()
|
|
|
- let params = data.map(item => {
|
|
|
- let obj = Object.assign({}, {
|
|
|
- DataSourceId: this.datasourceId,
|
|
|
- PointId: item.Id,
|
|
|
- EquipmentMark: item.EquipmentMark
|
|
|
- })
|
|
|
- return Object.assign(obj, this.dealType)
|
|
|
- }),
|
|
|
- sameFalg = false,
|
|
|
- magFalg = false;
|
|
|
- params.map((item, index) => {
|
|
|
- if (!item.EquipmentMark) {
|
|
|
- magFalg = true
|
|
|
- }
|
|
|
- params.map((child, childIndex) => {
|
|
|
- if (childIndex != index && child.EquipmentMark == item.EquipmentMark) {
|
|
|
- sameFalg = true
|
|
|
- }
|
|
|
- })
|
|
|
+ // let data = this.hot.getSourceData()
|
|
|
+ // let params = data.map(item => {
|
|
|
+ // let obj = Object.assign({}, {
|
|
|
+ // DataSourceId: this.datasourceId,
|
|
|
+ // PointId: item.Id,
|
|
|
+ // EquipmentMark: item.EquipmentMark
|
|
|
+ // })
|
|
|
+ // return Object.assign(obj, this.dealType)
|
|
|
+ // }),
|
|
|
+ // sameFalg = false,
|
|
|
+ // magFalg = false;
|
|
|
+ // params.map((item, index) => {
|
|
|
+ // if (!item.EquipmentMark) {
|
|
|
+ // magFalg = true
|
|
|
+ // }
|
|
|
+ // params.map((child, childIndex) => {
|
|
|
+ // if (childIndex != index && child.EquipmentMark == item.EquipmentMark) {
|
|
|
+ // sameFalg = true
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // })
|
|
|
+ // if (sameFalg) {
|
|
|
+ // this.confirm("点位中存在对象标识相同的点位,确认保存吗?", params)
|
|
|
+ // } else {
|
|
|
+ // this.createParam(params)
|
|
|
+ // }
|
|
|
+ let pa = Object.assign({
|
|
|
+ DataSourceId: this.queryParam.DataSourceId,
|
|
|
+ KeyEquipmentParameter: this.queryParam.EquipmentParameter,
|
|
|
+ KeyEquipmentType: this.queryParam.EquipmentType,
|
|
|
+ }, this.dealType);
|
|
|
+ groupCreatePointRelation(pa, res => {
|
|
|
+ this.$message.success("处理成功")
|
|
|
+ this.$emit("changed")
|
|
|
})
|
|
|
- if (sameFalg) {
|
|
|
- this.confirm("点位中存在对象标识相同的点位,确认保存吗?", params)
|
|
|
- } else {
|
|
|
- this.createParam(params)
|
|
|
- }
|
|
|
},
|
|
|
confirm(assage, params) {
|
|
|
this.$confirm(assage, { type: 'warning' }).then(_ => {
|
|
@@ -322,7 +344,7 @@ export default {
|
|
|
this.activeName += 1
|
|
|
let setting = {
|
|
|
data: this.renderData,
|
|
|
- maxRows: this.renderData.length,
|
|
|
+ maxRows: 1000,
|
|
|
colHeaders: ['对象标识', '原始点位描述', '位置标签', '备注'],
|
|
|
columns: [{
|
|
|
data: 'EquipmentMark'
|
|
@@ -583,6 +605,73 @@ export default {
|
|
|
this.infoDict = this.$refs.dictionaryCas.pointDataSource
|
|
|
this.unitObj = this.infoDict[val[val.length - 1]]
|
|
|
this.InfomationPoint = this.unitObj.InfoPointName || ''
|
|
|
+ },
|
|
|
+ //分页发生更改
|
|
|
+ changePage() {
|
|
|
+ this.$emit('changePage', this.queryParam);
|
|
|
+ },
|
|
|
+ // 修改table
|
|
|
+ changeTable(changeData, source) {
|
|
|
+ console.log(source)
|
|
|
+ if (source == 'edit' || source == 'Autofill.fill') {
|
|
|
+ let trimmedArr = this.trimmedRows();
|
|
|
+ let param = handsonUtils.getParam(changeData, source, this.hot, trimmedArr);
|
|
|
+ let updateParams = {
|
|
|
+ data: {
|
|
|
+ Content: []
|
|
|
+ },
|
|
|
+ type: this.protocolType
|
|
|
+ }
|
|
|
+ updateParams.data.Content = param.map(t => {
|
|
|
+ return {
|
|
|
+ Id: t.Id,
|
|
|
+ EquipmentMark: t.EquipmentMark
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log(updateParams)
|
|
|
+ updatePoint(updateParams, data => {
|
|
|
+ this.$message.success("修改成功")
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //获取被筛选掉的行号
|
|
|
+ trimmedRows() {
|
|
|
+ var plugin = this.hot.getPlugin("trimRows").trimmedRows;
|
|
|
+ let dataLength = this.renderData.length;
|
|
|
+ let dataArr = new Array();
|
|
|
+ for (let i = 0; i < dataLength; i++) {
|
|
|
+ dataArr.push(i);
|
|
|
+ }
|
|
|
+ if (plugin.length <= 0) {
|
|
|
+ dataArr = undefined;
|
|
|
+ } else {
|
|
|
+ dataArr = this.array_diff(dataArr, plugin);
|
|
|
+ }
|
|
|
+ return dataArr || [];
|
|
|
+ },
|
|
|
+ //去除数组中相同的元素
|
|
|
+ array_diff(a, b) {
|
|
|
+ for (var i = 0; i < b.length; i++) {
|
|
|
+ for (var j = 0; j < a.length; j++) {
|
|
|
+ if (a[j] == b[i]) {
|
|
|
+ a.splice(j, 1);
|
|
|
+ j = j - 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return a;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ 'renderData': {
|
|
|
+ handler(n, o) {
|
|
|
+ if (n.length && this.hot) {
|
|
|
+ this.hot.loadData(n);
|
|
|
+ console.log('load')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true,
|
|
|
+ deep: true
|
|
|
}
|
|
|
}
|
|
|
}
|