123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733 |
- <template>
- <div>
- <el-drawer
- v-loading="loading"
- :show-close="false"
- :title="curObj.id ? '编辑楼盘' : '新增楼盘'"
- :wrapper-closable="false"
- :close-on-press-escape="false"
- :visible.sync="isShow"
- size="960px"
- custom-class="xl-drawer"
- direction="rtl"
- >
- <base-form ref="ruleForm" class="lib-edit" :data="formData" :is-inline="false" label-width="110px" :insertSlotArr="[24,26]">
- <div slot="OI24" class="scoped-product">
- <div class="sp-item" v-for="(product, one) in productData" :key="one">
- <div class="sp-title">{{product.product_type_name}}
- <div class="scoped-sp-box" @click="openPtPopup(product, one)">
- 修改类型
- </div>
- </div>
- <div class="sp-content">
- <div class="sc-input">
- <el-form-item label-width="80px" label="产品均价">
- <el-input v-model="product.average_price" placeholder="数字如:15000" onkeyup="value=value.replace(/[^\d]/g,'')"></el-input>
- </el-form-item>
- <el-form-item label-width="80px" label="梯户比">
- <el-input v-model="product.stairs_rate" placeholder="如:2梯4户"></el-input>
- </el-form-item>
- <!-- <el-form-item label-width="80px" label="装标">
- <el-input v-model="product.standard" placeholder="装修标准"></el-input>
- </el-form-item> -->
- <!-- <el-form-item label-width="80px" label="最低单价">
- <el-input v-model="product.price_min" placeholder="选填"></el-input>
- </el-form-item>
- <el-form-item label-width="80px" label="最高单价">
- <el-input v-model="product.price_max" placeholder="选填"></el-input>
- </el-form-item> -->
- </div>
- <el-form-item label="户型">
- <el-select v-model="product.house_type_list_val" placeholder="请选择" :multiple="true" @change="houseTypeChange(one)">
- <el-option
- v-for="item in $dictData.house_type"
- :key="item.val"
- :label="item.key"
- :value="item.val">
- </el-option>
- </el-select>
- </el-form-item>
- <div class="room-box">
- <div class="room-item" v-for="(room, two) in product.house_type_list" :key="two">
- <div class="ri-title">{{room.house_type_name}}
- <el-button type="small" icon="el-icon-plus" class="xl-form-btn xs t3" @click="roomAreaAdd(one, two)">添加</el-button>
- </div>
- <div class="ri-content">
- <div class="ri-op" v-for="(area, three) in room.area_list" :key="three">
- <el-upload
- class="ri-img"
- :action="`${domainUrl}/adm/upload/cloud`"
- :data="{logic_type: 'estate', token}"
- name="upload"
- :show-file-list="false"
- :on-success="roomAreaUploadSuccess"
- :on-error="roomAreaUploadError"
- :before-upload="roomAreaUploadBefore"
- >
- <img v-if="area.img_url" :src="area.img_url + '_adm0'" class="img" @click="roomAreaUploadImg(one, two, three)">
- <i v-else class="el-icon-plus icon" @click="roomAreaUploadImg(one, two, three)"/>
- <img :src="area.img_url + '_adm0'" class="ri-img-big">
- </el-upload>
- <div class="ri-deal">
- <div class="ops">
- <div class="k">面积:</div>
- <input class="ri-input" v-model="area.area" type="text" placeholder="请输入">
- </div>
- <div class="ops">
- <div class="k">VR地址:</div>
- <input class="ri-input" v-model="area.vr_key" type="text" placeholder="请输入">
- </div>
- <div class="ops">
- <div class="k">总价(万):</div>
- <input class="ri-input" v-model="area.price" type="text" placeholder="请输入">
- </div>
- <div class="ops">
- <div class="k">备注:</div>
- <input class="ri-input" v-model="area.remark" type="text" placeholder="请输入">
- </div>
- <span class="ri-del" @click="roomAreaDel(one, two, three)">删除</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div slot="OI26" class="scoped-other-form">
- <el-form-item label="点位坐标" class="scoped-item-two item">
- 纬度N<el-input v-model="cObj.latitude" disabled />
- 经度E<el-input v-model="cObj.longitude" disabled />
- <el-button type="primary" class="map-btn" size="small" @click="openMap">点击从地图获取</el-button>
- </el-form-item>
- </div>
- </base-form>
- <div class="xl-form">
- <div class="xl-form-footer fixed" style="width:960px;padding-top: 20px;border-top: 1px solid #dcdcdc;right:0;">
- <el-button class="xl-form-btn t2" @click="close">关 闭</el-button>
- <el-button class="xl-form-btn t1" @click="close('confirm')">确定</el-button>
- </div>
- </div>
- </el-drawer>
- <handle-map :is-show="isShowMap" @close="closeMap" />
- <pt-edit
- :isShow="isPtShow"
- :curObj="ptObj"
- @close="closePtPopup"
- />
- </div>
- </template>
- <script>
- import { arrToObj } from '@/utils'
- import handleMap from '@/components/Common/Map'
- import PtEdit from './ProductTypeEdit'
- export default {
- components: {
- handleMap,
- PtEdit,
- },
- mixins,
- props: {
- isShow: Boolean,
- curObj: Object
- },
- inject: ['parentData'],
- data() {
- const token = window.sessionStorage.getItem('fp_token')
- let domainUrl = process.env.VUE_APP_BASE_API
- return {
- domainUrl,
- token,
- loading: false,
- formData: [],
- cObj: {},
- isShowMap: false,
- productData: [],
- tempImgIndex: [0, 0, 0],
- ptObj: {},
- isPtShow: false,
- areaList: [],
- areaChildList: [],
- areaValIdObj: {},
- oldVrKeys: [],
- newVrKeys: [],
- }
- },
- watch: {
- isShow: function(val) {
- if (val) {
- if (this.curObj.id) {
- this.loading = true
- this.$api.house.admestatedetail({id: this.curObj.id}).then(res => {
- let curData = res || {}
- if (curData.house_type) curData.house_type = curData.house_type.split(',')
- if (curData.product_type) curData.product_type = curData.product_type.split(',')
- if (curData.hospital_type) curData.hospital_type = curData.hospital_type.split(',')
- if (curData.high_street) curData.high_street = curData.high_street.split(',')
- if (curData.park_type) curData.park_type = curData.park_type.split(',')
- if (curData.metro_line) curData.metro_line = curData.metro_line.split(',')
- if (curData.metro_type) curData.metro_type = curData.metro_type.split(',')
- this.cObj = curData || {}
- let productData = curData.area_data || []
- let vrkeys = []
- productData.map((one, oneIndex) =>{
- one.product_type_name = arrToObj(this.$dictData.product_type)[one.product_type_val]
- let houseTypeList = one.house_type_list || []
- one.house_type_list_val = []
- houseTypeList.map(two => {
- two.area_list.forEach(three => {
- if (three.vr_key) vrkeys.push(three.vr_key)
- })
- two.house_type_name = arrToObj(this.$dictData.house_type)[two.house_type_val]
- one.house_type_list_val.push(String(two.house_type_val))
- })
- })
- this.oldVrKeys = [...vrkeys]
- this.productData = [...productData]
- if (curData.area_data) {
- this.getAreaChild('bc', () => {
- this.getDef()
- })
- } else {
- this.getDef()
- }
- this.loading = false
- })
- } else {
- this.cObj = this.curObj
- this.getDef()
- }
- }
- },
- },
- created () {
- this.$api.other.admareainfolist({
- level: 1,
- page_size: 99
- }).then(res => {
- let list = res.list || []
- let areaValIdObj = {}
- list.map(item => {
- item.key = item.area_name
- item.val = item.option1
- areaValIdObj[item.val] = item.id
- })
- this.areaList = [...list]
- this.areaValIdObj = {...areaValIdObj}
- // console.log(areaValIdObj)
- })
- },
- methods: {
- getAreaChild (str, bc) {
- const cObj = this.cObj
- this.$api.other.admareainfolist({
- level: 2,
- page_size: 99,
- parent_id: this.areaValIdObj[cObj.area_type] || ''
- }).then(res => {
- let list = res.list || []
- list.map(item => {
- item.key = item.area_name
- item.val = String(item.id)
- })
- this.areaChildList = [...list]
- if (str && str === 'bc') {
- bc()
- }
- })
- },
- closePtPopup (bcData) {
- this.isPtShow = false
- if (bcData) {
- let productData = [...this.productData]
- let cObj = productData[bcData.index]
- cObj.product_type_val = bcData.ptVal
- cObj.product_type_name = bcData.ptName
- productData[bcData.index] = cObj
- this.productData = [...productData]
- let params = {...this.$refs.ruleForm.baseForm}
- let curPt = [...params.product_type]
- curPt[bcData.index] = bcData.ptVal
- params.product_type = curPt
- this.setDefaultValue(params)
- }
- },
- openPtPopup (row, index) {
- this.isPtShow = true
- this.ptObj = {
- row,
- index
- }
- },
- houseTypeChange (one) {
- let productData = [...this.productData]
- let tempList = []
- let houseTypeList = productData[one].house_type_list || []
- const curVal = productData[one].house_type_list_val ||[]
- curVal.forEach(v =>{
- let cObj = {
- house_type_name: arrToObj(this.$dictData.house_type)[v],
- house_type_val: v,
- area_list: [{img_url: '', area: '0', vr_key: ''}]
- }
- houseTypeList.forEach((h, hIndex) =>{
- if (v === String(h.house_type_val)) {
- cObj.area_list = houseTypeList[hIndex].area_list || []
- }
- })
- tempList.push(cObj)
- })
- productData[one].house_type_list = tempList
- this.productData = [...productData]
- },
- roomAreaDel (one, two, three) {
- this.$msg(`您确定要删除吗?`, 'confirm', () => {
- let productData = [...this.productData]
- productData[one].house_type_list[two].area_list.splice(three, 1)
- this.productData = [...productData]
- })
- },
- roomAreaAdd (one, two) {
- let productData = [...this.productData]
- productData[one].house_type_list[two].area_list.push({img_url: '', area: '0', vr_key: ''})
- this.productData = [...productData]
- },
- roomAreaUploadImg (one, two, three) {
- this.tempImgIndex = [one, two, three]
- },
- roomAreaUploadSuccess(res, file) {
- const data = res.data || {}
- let productData = [...this.productData]
- // productData[this.tempImgIndex[0]].house_type_list[this.tempImgIndex[1]].area_list[this.tempImgIndex[2]].img_url = `${data.domain}${data.url}?url=${data.url}&id=${data.file_id}`
- productData[this.tempImgIndex[0]].house_type_list[this.tempImgIndex[1]].area_list[this.tempImgIndex[2]].img_url = `${data.url}`
- this.productData = [...productData]
- },
- roomAreaUploadError(file) {
- // this.changeHandle(file)
- },
- roomAreaUploadBefore(file) {
- const isJPGPNG = file.type === 'image/jpeg' || file.type === 'image/png'
- const isLtM = file.size / 1024 / 1024 < 10
- if (!isJPGPNG) {
- this.$message.error('上传图片只能是 JPG PNG GIF 格式!')
- }
- if (!isLtM) {
- this.$message.error('上传图片大小不能超过 10M!')
- }
- return isJPGPNG && isLtM
- },
- metroLineChange (val) {
- this.getDef('change', 'metro_line')
- },
- productTypeChange (val, op, item) {
- const valArr = [...val]
- const productData = [...this.productData]
- let newArr = []
- valArr.forEach(v => {
- let vObj = {
- product_type_name: arrToObj(this.$dictData.product_type)[v],
- product_type_val: v,
- }
- productData.forEach(old =>{
- if (v === String(old.product_type_val)) {
- vObj = {...old}
- }
- })
- newArr.push(vObj)
- })
- this.productData = [...newArr]
- },
- areaChange (val) {
- this.cObj.area_type = val
- this.getAreaChild('bc', () => {
- this.getDef('change', 'area_type')
- })
- },
- getDef (str, strKey, strParams) {
- let params = {}
- if (str === 'change') {
- params = {...this.cObj, ...this.$refs.ruleForm.baseForm}
- } else {
- params = { ...this.cObj }
- }
- let metroLine = params.metro_line || []
- let metroTypeArr = []
- if (str === 'change' && strKey === 'metro_line') params.metro_type = ''
- if (str === 'change' && strKey === 'area_type') params.area_child = ''
- const metroTypeAll = this.$dictData.metro_type || []
- metroTypeAll.map(item => {
- metroLine.map(mline => {
- if (item.option1.indexOf(mline) > -1) {
- metroTypeArr.push(item)
- }
- })
- })
- let disabled = false
- if (params.id) disabled = true
- let remoteOptionsDkSchoolList = []
- if (params.school_list && params.school_list.duikou && params.school_list.duikou.length > 0) {
- params.school_dk_list = params.school_list.duikou.map(item => {
- remoteOptionsDkSchoolList.push({ keyRO: item.school_name, valRO: item.id })
- return item.id
- })
- } else {
- params.school_dk_list = []
- }
- let remoteOptionsGhSchoolList = []
- if (params.school_list && params.school_list.guihua && params.school_list.guihua.length > 0) {
- params.school_gh_list = params.school_list.guihua.map(item => {
- remoteOptionsGhSchoolList.push({ keyRO: item.school_name, valRO: item.id })
- return item.id
- })
- } else {
- params.school_gh_list = []
- }
- this.formData = [
- { label: '楼盘名称', key: 'estate_name', rules: 1 },
- { label: '所属区域', key: 'area_type', type: 'select', class: 'c-3', options: this.areaList, changeHandle: this.areaChange },
- { label: '二级区域', key: 'area_child', type: 'select', class: 'c-3', options: this.areaChildList },
- // { label: '二级区域', key: 'area_child', type: 'selectRemote', class: 'c-3',
- // remoteParams: { skey: 'area_name', api: `other.admareainfolist?level=2&&page_size=99&parent_id=${params.area_type ? this.areaValIdObj[params.area_type] : ''}`, opKey: 'area_name', opVal: 'id' },
- // },
- { label: '地铁线路', key: 'metro_line', type: 'select', class: 'c-3', options: this.$dictData.metro_line, changeHandle: this.metroLineChange, multiple: true },
- { label: '地铁站名', key: 'metro_type', type: 'select', class: 'c-3', options: metroTypeArr, multiple: true},
- // { label: '周边医院', key: 'hospital_type', type: 'select', class: 'c-3', options: this.$dictData.hospital_type, multiple: true },
- // { label: '周边商圈', key: 'high_street', type: 'select', class: 'c-3', options: this.$dictData.high_street, multiple: true },
- // { label: '周边公园', key: 'park_type', type: 'select', class: 'c-3', options: this.$dictData.park_type, multiple: true },
- { label: '建设时间', key: 'build_time', class: 'c-3', type: 'datePicker', type2: 'month', valueFormat: 'yyyy-MM'},
- { label: '竣工时间', key: 'complete_time', class: 'c-3', type: 'datePicker', type2: 'month', valueFormat: 'yyyy-MM'},
- { label: '容积率', key: 'plot_ratio', class: 'c-3'},
- { label: '占地面积', key: 'acreage', class: 'c-3', type: 'inputFont', appendFont: '㎡'},
- { label: '建筑面积', key: 'built_up_area', class: 'c-3', type: 'inputFont', appendFont: '㎡'},
- { label: '总户数', key: 'household', class: 'c-3', type: 'inputFont', appendFont: '户', rules: [
- { validator: (rule, value, callback) => {
- if (Number(value) < 0 || isNaN(Number(value))) {
- callback(new Error('请输入数字'))
- } else {
- callback()
- }
- }, trigger: 'blur' },
- // { type: 'number', message: '请输入数字', trigger: 'blur' }
- ]},
- { label: '物业公司', key: 'property_type', class: 'c-3'},
- { label: '物业费', key: 'property_fee', class: 'c-3'},
- { label: '车位数量', key: 'parking', class: 'c-3', type: 'inputFont', appendFont: '个'},
- { label: '绿化率', key: 'green_rate', class: 'c-3', type: 'inputFont', appendFont: '%' },
- { label: '楼盘标签', key: 'estate_tag', type: 'select', class: 'c-3', options: this.$dictData.estate_tag, rules: 1 },
- { label: '自定义标签', key: 'custom_tag', class: 'c-3' },
- { label: '开发商', key: 'developer', class: 'c-3' },
- { label: '楼栋数', key: 'seat_sum', class: 'c-3', type: 'inputFont', appendFont: '栋' },
- { label: '产权年限', key: 'ownership', class: 'c-3' },
- { label: '初次交付时间', key: 'deliver_time', class: 'c-3', type: 'datePicker', type2: 'month', valueFormat: 'yyyy-MM'},
- { label: '楼盘单价', key: 'price_range', class: 'c-3', type: 'inputFont', appendFont: '/㎡', rules: 1 },
- { label: '户型面积区间', key: 'built_area', class: 'c-3', type: 'inputFont', appendFont: '㎡' },
- // { label: '是否销控', key: 'sale_ctrl', type: 'select', class: 'c-3', options: this.$dictData.sys_yesno },
- { label: '产品类型', key: 'product_type', type: 'select', class: 'c-3s', options: this.$dictData.product_type, multiple: true, changeHandle: this.productTypeChange},
- // { label: '房型', key: 'house_type', type: 'select', options: this.$dictData.house_type, multiple: true},
- // { label: '面积', label2: '多个面积英文逗号,分开(如:100,120)', key: 'house_area', type: 'inputFont', appendFont: '㎡'},
- // { label: '均价范围1', key: 'price_min', class: 'c-3', type: 'inputFont', appendFont: '元(最小)'},
- // { label: '均价范围2', key: 'price_max', class: 'c-3', type: 'inputFont', appendFont: '元(最大)'},
- { label: '对口学校', key: 'school_dk_list', type: 'selectRemote', multiple: true,
- remoteParams: { skey: 'school_name', api: `school.admschoollist`, opKey: 'school_name', opVal: 'id' },
- remoteOptions: remoteOptionsDkSchoolList
- },
- { label: '规划就读', key: 'school_gh_list', type: 'selectRemote', multiple: true,
- remoteParams: { skey: 'school_name', api: `school.admschoollist`, opKey: 'school_name', opVal: 'id' },
- remoteOptions: remoteOptionsGhSchoolList
- },
- { label: '楼盘地址', key: 'address', rules: 1 },
- // { label: '是否新房', key: 'is_new', type: 'select', class: 'c-3', options: this.$dictData.sys_yesno, rules: 1 },
- // { label: '梯户比', label2: '如:2梯4户', key: 'stairs_rate', class: 'c-3' },
- { label: '车位价格', key: 'parking_price', class: 'c-3' },
- { label: '不利因素', key: 'minus_points' },
- { label: '楼盘图', key: 'pri_image', class: 'c-3', type: 'cuImg',
- options: {
- w: 375,
- h: 250,
- SY: 1,
- }
- , rules: 1 },
- { label: '简评', key: 'remarked', class: 'c-3s', type: 'textarea' },
- ]
- params.pri_image = this.IMadd(params.pri_image)
- this.setDefaultValue(params)
- },
- close (str) {
- if (str === 'confirm') {
- this.$refs['ruleForm'].$refs['baseForm'].validate((valid) => {
- if (valid) {
- const oldform = this.$refs.ruleForm.baseForm
- const newForm = { ...oldform }
- if (this.curObj.id) newForm.id = this.curObj.id
- if (newForm.school_dk_list && newForm.school_dk_list.length > 0) {
- newForm.school_dk_list = newForm.school_dk_list.join(',')
- } else {
- newForm.school_dk_list = ''
- }
- if (newForm.school_gh_list && newForm.school_gh_list.length > 0) {
- newForm.school_gh_list = newForm.school_gh_list.join(',')
- } else {
- newForm.school_gh_list = ''
- }
- newForm.longitude = this.cObj.longitude
- newForm.latitude = this.cObj.latitude
- if (!newForm.longitude) return this.$msgw('请选择经度!')
- else if (!newForm.latitude) return this.$msgw('请选择纬度!')
- if (newForm.house_type) newForm.house_type = newForm.house_type.join(',')
- if (newForm.product_type) newForm.product_type = newForm.product_type.join(',')
- if (newForm.hospital_type) newForm.hospital_type = newForm.hospital_type.join(',')
- if (newForm.high_street) newForm.high_street = newForm.high_street.join(',')
- if (newForm.park_type) newForm.park_type = newForm.park_type.join(',')
- if (newForm.metro_line) newForm.metro_line = newForm.metro_line.join(',')
- if (newForm.metro_type) newForm.metro_type = newForm.metro_type.join(',')
- let customTag = newForm.custom_tag.replace(/,|、|\/|\\/g, ',')
- if (!newForm.standard) newForm.standard = ''
- // newForm.stairs_rate = newForm.stairs_rate.replace(',', ',')
- let productData = this.productData || []
- let pFlag = false
- let vrFlag = false
- let vrkeys = []
- productData.forEach(pOne => {
- let oneArr = pOne.house_type_list || []
- oneArr.forEach(pTwo => {
- let twoArr = pTwo.area_list || []
- twoArr.forEach(pThree => {
- if (pThree.vr_key) vrFlag = true
- if (pThree.vr_key) vrkeys.push(pThree.vr_key)
- })
- })
- // if (!pOne.average_price || !pOne.house_type_list_val) {
- // pFlag = true
- // }
- if (!pOne.stairs_rate) pOne.stairs_rate = ''
- if (!pOne.average_price) pOne.average_price = 0
- if (!pOne.house_type_list_val) pOne.house_type_list_val = ''
- })
- this.newVrKeys = [...vrkeys]
- // if (pFlag) {
- // this.$msg('请输入完整的产品均价、户型图!')
- // return
- // }
- if (vrFlag && newForm.custom_tag.indexOf('户型VR') === -1) {
- customTag = `户型VR,${newForm.custom_tag}`
- }
- if (this.curObj.vr_key && newForm.custom_tag.indexOf('航拍') === -1) {
- customTag = `航拍,${newForm.custom_tag}`
- }
- newForm.custom_tag = customTag
- if (productData.length === 0) {
- newForm.area_data = ''
- } else {
- newForm.area_data = JSON.stringify([...productData])
- }
- let apiStr = 'admestateadd'
- if (this.curObj.id) apiStr = 'admestateedit'
- newForm.pri_image = this.IMdel(newForm.pri_image)
- this.$api.house[apiStr](newForm).then(data => {
- this.$msgs(newForm.id ? '编辑成功' : '新增成功')
- this.$api.house.admestatehousevrscoring({
- estate_id: this.curObj.id,
- old_list: JSON.stringify(this.oldVrKeys),
- new_list: JSON.stringify(this.newVrKeys),
- })
- this.productData = []
- this.$emit('close', newForm)
- })
- }
- })
- } else {
- this.$emit('close')
- this.productData = []
- this.setDefaultValue()
- }
- },
- openMap() { // 定位
- this.isShowMap = true
- const pointObj = {
- latitude: this.cObj.latitude || '',
- longitude: this.cObj.longitude || '',
- address: this.cObj.address || ''
- }
- this.$root.$emit('handleMap', pointObj)
- },
- closeMap(obj) {
- if (obj) {
- const oldform = this.$refs.ruleForm.baseForm
- const newForm = { ...oldform, ...obj }
- this.cObj = newForm
- this.setDefaultValue(newForm)
- }
- this.isShowMap = false
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- @import '../../../../styles/libEdit.scss';
- .lib-edit {
- width: 900px;
- padding-top: 0;
- padding-left: 0;
- padding-bottom: 40px;
- ::v-deep .el-form-item {
- margin-bottom: 10px;
- }
- ::v-deep .el-date-editor.el-input {
- width: 100%;
- }
- }
- .scoped-other-form {
- .scoped-item-two {
- .el-input {
- display: inline-block;
- width: 140px;
- margin: 0 10px;
- }
- }
- }
- .map-btn{
- height: 36px;
- }
- ::v-deep .el-drawer__header {
- margin-bottom: 10px;
- }
- .scoped-product {
- width: 100%;
- .sp-item {
- position: relative;
- border: 1px solid #dcdcdc;
- margin-bottom: 10px;
- margin-left: 55px;
- margin-right: 30px;
- border-radius: 10px;
- }
- .sp-title {
- background: #dcdcdc;
- font-weight: bold;
- padding: 10px;
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
- font-size: 14px;
- color: #666;
- }
- .sp-content {
- padding: 10px 10px 0;
- }
- .sc-input {
- display: flex;
- }
- }
- .room-box {
- margin: 0 20px 10px 80px;
- .room-item {
- background: #f7f7f7;
- border-radius: 10px;
- padding: 10px;
- margin-bottom: 10px;
- }
- .ri-title {
- color: #666;
- margin-bottom: 10px;
- }
- .ri-op {
- display: inline-block;
- vertical-align: middle;
- margin-right: 20px;
- margin-bottom: 10px;
- }
- .ri-img {
- display: inline-block;
- vertical-align: middle;
- width: 82px;
- height: 82px;
- border: 1px dashed #e6a23c;
- position: relative;
- box-sizing: border-box;
- &:hover {
- .ri-img-big {
- display: block;
- }
- }
- img {
- width: 80px;
- height: 80px;
- }
- .ri-img-big {
- position: absolute;
- top: 80px;
- left: 0;
- width: 400px;
- height: auto;
- display: none;
- box-shadow: 0 0 20px #ccc;
- z-index: 99;
- }
- .el-icon-plus {
- color: #999;
- padding: 30px;
- }
- }
- .ri-deal {
- display: inline-block;
- vertical-align: middle;
- width: 200px;
- text-align: left;
- .ops {
- text-align: left;
- display: inline-block;
- vertical-align: middle;
- width: 100px;
- margin-bottom: 2px;
- .k {
- display: inline-block;
- vertical-align: middle;
- width: 50px;
- font-size: 12px;
- color: #666;
- text-align: right;
- }
- }
- }
- .ri-input {
- display: inline-block;
- vertical-align: middle;
- width: 50px;
- border: 1px solid #dcdcdc;
- height: 26px;
- text-align: center;
- border-radius: 0;
- outline: none;
- color: #666;
- font-size: 12px;
- }
- .ri-del {
- font-size: 12px;
- background: #e6a23c;
- color: #fff;
- width: 50%;
- height: 26px;
- line-height: 26px;
- cursor: pointer;
- display: inline-block;
- text-align: center;
- }
- }
- .scoped-sp-box {
- position: absolute;
- top: -2px;
- right: 0;
- background: #fff;
- ::v-deep {
- .el-input__inner {
- width: 80px;
- }
- .el-input-group__append {
- background: #f2f2f2;
- }
- }
- }
- </style>
|