|
@@ -15,7 +15,11 @@
|
|
|
<template v-for="(val,key,index) in buildMessage">
|
|
|
<h4>{{key}}</h4>
|
|
|
|
|
|
- <span :key="item.InfoPointCode" v-for="(item,index) in val">
|
|
|
+ <span
|
|
|
+ :key="item.InfoPointCode"
|
|
|
+ v-for="(item,index) in val"
|
|
|
+ :class="[{'upload-file':item.InputMode == 'F2'}]"
|
|
|
+ >
|
|
|
<el-form-item
|
|
|
:class="{FloorTypeSelect:item.InputMode == 'D1'||item.Unit}"
|
|
|
:label="item.InfoPointName"
|
|
@@ -23,16 +27,38 @@
|
|
|
v-if="all||item.Visible"
|
|
|
>
|
|
|
|
|
|
- <el-input v-if="item.InputMode == 'B1'" v-model="form[item.Path]"></el-input>
|
|
|
+ <el-input v-if="item.InputMode == 'B1' || item.InputMode == 'B2'" v-model="form[item.Path]"></el-input>
|
|
|
+
|
|
|
<el-input type="number" v-else-if="item.InputMode == 'A1'||item.InputMode == 'A2'" v-model="form[item.Path]">
|
|
|
<template slot="append" v-if="item.Unit">{{item.Unit}}</template>
|
|
|
</el-input>
|
|
|
<el-select placeholder="请选择" v-else-if="item.InputMode == 'D1'" v-model="form[item.Path]">
|
|
|
<el-option :key="op.Code" :label="op.Name" :value="op.Code" v-for="op in item.options"></el-option>
|
|
|
-
|
|
|
</el-select>
|
|
|
- <el-input v-else-if="item.InputMode == 'L'||item.InputMode == 'L1'||item.InputMode == 'L2'||item.InputMode == 'M'"
|
|
|
- v-model="form[item.Path]">
|
|
|
+ <el-select placeholder="请选择" v-else-if="item.InputMode == 'D2'||item.InputMode == 'E2'"
|
|
|
+ v-model="form[item.Path]" multiple
|
|
|
+ collapse-tags>
|
|
|
+ <el-option :key="op.Code" :label="op.Name" :value="op.Code" v-for="op in item.options"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form[item.Path]"
|
|
|
+ type="daterange"
|
|
|
+ v-else-if="item.InputMode == 'C6'"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"/>
|
|
|
+ <el-cascader
|
|
|
+ v-else-if="item.InputMode == 'D1L'"
|
|
|
+ placeholder="请选择"
|
|
|
+ :options="item.options"
|
|
|
+ v-model="form[item.Path]"
|
|
|
+ :props="{ checkStrictly: true ,value: 'Code',label:'Name'}"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ <el-input
|
|
|
+ v-else-if="item.InputMode == 'L'||item.InputMode == 'L1'||item.InputMode == 'L2'||item.InputMode == 'M'"
|
|
|
+ v-model="form[item.Path]">
|
|
|
<template slot="append" v-if="item.Unit">{{item.Unit}}</template>
|
|
|
</el-input>
|
|
|
<el-date-picker
|
|
@@ -40,9 +66,30 @@
|
|
|
value-format="yyyy-MM-dd"
|
|
|
type="date" v-else-if="item.InputMode == 'C5'" v-model="form[item.Path]">
|
|
|
</el-date-picker>
|
|
|
+ <el-upload
|
|
|
+ v-else-if="item.InputMode == 'F2'&& item.Path === 'BuildingInfo.BuildingType.Pic'"
|
|
|
+ v-model="form[item.Path]"
|
|
|
+ action="https://jsonplaceholder.typicode.com/posts/"
|
|
|
+ list-type="picture-card"
|
|
|
+ >
|
|
|
+<!-- :on-preview="handlePictureCardPreview"
|
|
|
+ :on-remove="handleRemove"-->
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
+ </el-upload>
|
|
|
+ <upload-files
|
|
|
+ v-else-if="item.InputMode == 'F2'"
|
|
|
+ v-model="form[item.Path]"
|
|
|
+ :readOnly="false"
|
|
|
+ :keysArr="keysArr"
|
|
|
+ :show-file-list="false"
|
|
|
+ @change="changeItem"
|
|
|
+ max="2"
|
|
|
+ />
|
|
|
+
|
|
|
<el-input disabled title="暂不支持" v-else v-model="form[item.Path]"></el-input>
|
|
|
- {{item.InputMode}}
|
|
|
+
|
|
|
</el-form-item>
|
|
|
+ <!-- <span>{{item.InputMode}}</span>-->
|
|
|
</span>
|
|
|
</template>
|
|
|
<!-- <h4>建筑信息-建筑类型</h4>-->
|
|
@@ -78,16 +125,45 @@
|
|
|
<el-button @click="buildDialogVis = false">取 消</el-button>
|
|
|
<el-button @click="submitForm('ruleForm')" type="primary">确 定</el-button>
|
|
|
</span>
|
|
|
+
|
|
|
+
|
|
|
+ <el-dialog :visible.sync="dialogVisible">
|
|
|
+ <img width="100%" :src="dialogImageUrl" alt="">
|
|
|
+ </el-dialog>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
</template>
|
|
|
<script>
|
|
|
- import uploadFile from "./uploadFile";
|
|
|
- import tools from "@/utils/buildfloor/tools";
|
|
|
+ import uploadFiles from "@/components/business_space/lib/uploadFiles";
|
|
|
+
|
|
|
+ function flattenKeys(obj) {
|
|
|
+ let res = {}
|
|
|
+
|
|
|
+ function isObject(val) {
|
|
|
+ return typeof val === 'object' && !Array.isArray(val)
|
|
|
+ }
|
|
|
+
|
|
|
+ function digKeys(prev, obj) {
|
|
|
+ Object.entries(obj).forEach(([key, value]) => {
|
|
|
+ const currentKey = prev ? `${prev}.${key}` : key
|
|
|
+ if (isObject(value)) {
|
|
|
+ digKeys(currentKey, value)
|
|
|
+ } else {
|
|
|
+ res[currentKey] = value
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ digKeys('', obj)
|
|
|
+
|
|
|
+ return res
|
|
|
+ }
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
buildName: '',
|
|
|
+ keysArr: [], //保存临时的文件key
|
|
|
buildDialogVis: false,
|
|
|
form: {},
|
|
|
dialogImageUrl: '',
|
|
@@ -101,11 +177,14 @@
|
|
|
{"required": true, "message": "请输入建筑本地名称", "trigger": "blur"}
|
|
|
]
|
|
|
},
|
|
|
- floorData:{}
|
|
|
+ buildData: {},
|
|
|
+ dialog:{
|
|
|
+ uploadFiles:false
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
- components: {uploadFile},
|
|
|
- props: ['buildTitle', 'buildMessage','currentBuild'],
|
|
|
+ components: {uploadFiles},
|
|
|
+ props: ['buildTitle', 'buildMessage', 'currentBuild'],
|
|
|
computed: {},
|
|
|
mounted() {
|
|
|
|
|
@@ -113,8 +192,8 @@
|
|
|
},
|
|
|
methods: {
|
|
|
showDialog(data) {
|
|
|
- this.floorData = data || {};
|
|
|
- this.floorData = tools.desFormatData(this.floorData)
|
|
|
+ this.buildData = data || {};
|
|
|
+ this.buildData = flattenKeys(this.buildData)
|
|
|
this.timeoutSetVal()
|
|
|
this.buildDialogVis = true
|
|
|
},
|
|
@@ -122,9 +201,7 @@
|
|
|
let that = this
|
|
|
setTimeout(() => {
|
|
|
if (that.form) {
|
|
|
-
|
|
|
- that.form = that.floorData
|
|
|
-
|
|
|
+ that.form = that.buildData
|
|
|
} else {
|
|
|
this.timeoutSetVal()
|
|
|
}
|
|
@@ -136,17 +213,19 @@
|
|
|
submitForm(formName) {
|
|
|
this.$refs[formName].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- // console.log(valid, 'valid', this.form);
|
|
|
- // for (let i in this.form) {
|
|
|
- // console.log(i, this.form[i])
|
|
|
- // }
|
|
|
- this.$emit('handleBuild',this.form)
|
|
|
+ this.$emit('handleBuild', this.form)
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
-
|
|
|
+ changeItem(val) {
|
|
|
+ console.log(val,'======')
|
|
|
+ }
|
|
|
+ //上传文件弹窗触发事件
|
|
|
+ // fileChange(keys) {
|
|
|
+ // this.setDataToMain(keys, this.messKey, this.row);
|
|
|
+ // },
|
|
|
// handleRemove(file, fileList) {
|
|
|
// console.log(file, fileList);
|
|
|
// },
|
|
@@ -158,10 +237,6 @@
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
- /deep/ .el-dialog__body {
|
|
|
- height: 420px;
|
|
|
- overflow: auto;
|
|
|
- }
|
|
|
|
|
|
#messageDialog {
|
|
|
/deep/ .el-date-editor.el-input, .el-date-editor.el-input__inner, /deep/ .el-select {
|
|
@@ -171,5 +246,15 @@
|
|
|
/deep/ .FloorTypeSelect .el-form-item__content {
|
|
|
width: 200px;
|
|
|
}
|
|
|
+
|
|
|
+ /deep/ .el-dialog__body {
|
|
|
+ height: 420px;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-file {
|
|
|
+ width: 100%;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|