295 lines
6.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="fullHeight bgWhite">
<headers :showBack="true">
<view class="headerName">
存放位置设置
</view>
</headers>
<scroll-view scroll-y="true" class="pageContent">
<view class="pageInner">
<view class="typeBox" v-for="(item,index) in typeList" :key="index" @click="editFn(item)">
<image src="/static/markRoomImg/bg_bule.png" class="bg"></image>
<view class="name">
{{item.locationName}}
</view>
</view>
<view class="addBox" @click="addFn">
<view class="">
<image src="/static/icon-add.png" class="icon-add"></image>
<view class="">
添加存放位置
</view>
</view>
</view>
</view>
</scroll-view>
<dialogs ref="dialogs">
<!-- <template v-slot:title>
{{isAdd?'添加':'编辑'}}
</template> -->
<template v-slot:content>
<view class="formBox2">
<form @submit="formSubmit">
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>父级位置
</view>
<view class="uni-form-input">
<picker @change="bindPickerChange" :value="selectIndex" :range="selectList"
range-key="locationName">
<view class="uni-input uni-select cl" v-if="selectIndex==null">
请选择 <image class="icon-down" src="/static/icon-down-black.png"></image>
</view>
<view class="uni-input uni-select" v-else>{{selectList[selectIndex].locationName}}
<image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>位置名称
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="locationName"
v-model="form.locationName" placeholder="请输入" />
</view>
</view>
<button form-type="submit" type="primary" class="btn submitBtn">保存</button>
<button form-type="submit" class="btn deleteBtn" v-show="!isAdd" @click="deleteFn">删除</button>
<view class="closeBtn" @click="closeDialogFn">
关闭
</view>
</form>
</view>
</template>
</dialogs>
</view>
</template>
<script>
import headers from "../../../../components/headers/headers.vue"
import dialogs from "../../../../components/dialog/dialog.vue"
export default {
components: {
headers,
dialogs
},
data() {
return {
projectDetail: {},
typeList: [],
form: {
projectSn: '',
locationName: '',
parentId: ''
},
isAdd: true,
devSn: '',
selectList: [],
selectIndex: null
};
},
onLoad(options) {
this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
this.devSn = options.devSn
this.loadData2()
this.loadData()
},
mounted() {
},
methods: {
bindPickerChange: function(e) {
console.log('picker发送选择改变携带值为', e.target.value)
this.selectIndex = e.target.value
},
closeDialogFn() {
this.$refs.dialogs.hideFn()
},
editFn(item) {
this.isAdd = false
this.form = JSON.parse(JSON.stringify(item))
this.selectIndex = null
if (item.parentId != 0) {
for (var i = 0; i < this.selectList.length; i++) {
if (this.selectList[i].id == item.parentId) {
this.selectIndex = i
this.form.locationName = item.locationName.split('>')[1]
}
}
}
this.$refs.dialogs.showFn()
},
addFn() {
this.form.locationName = ''
this.form.parentId = ''
this.selectIndex = null
this.isAdd = true
this.$refs.dialogs.showFn()
},
loadData() {
var that = this
this.sendRequest({
url: "xmgl/standardLocation/selectChildrenLocationList",
data: {
projectSn: this.projectDetail.projectSn,
devSn: this.devSn
},
method: "POST",
success(res) {
that.typeList = res.result
}
})
},
loadData2() {
var that = this
this.sendRequest({
url: "xmgl/standardLocation/list",
data: {
projectSn: this.projectDetail.projectSn,
devSn: this.devSn
},
method: "POST",
success(res) {
that.selectList = res.result
}
})
},
deleteFn() {
var that = this
this.sendRequest({
url: 'xmgl/standardLocation/delete',
data: {
id: this.form.id
},
method: "POST",
success(res) {
uni.showToast({
title: '删除成功!'
})
that.$refs.dialogs.hideFn()
that.loadData()
that.loadData2()
}
})
},
formSubmit(e) {
var that = this
console.log(e)
var params = e.detail.value
params.projectSn = this.projectDetail.projectSn
if (params.locationName == '') {
uni.showToast({
title: '请输入位置名称',
icon: 'none'
})
return false;
}
if (this.selectIndex != null) {
params.parentId = this.selectList[this.selectIndex].id
}
var url = 'xmgl/standardLocation/edit'
if (this.isAdd) {
url = 'xmgl/standardLocation/add'
params.devSn = this.devSn
} else {
params.id = this.form.id
}
this.sendRequest({
url: url,
data: params,
method: "POST",
success(res) {
uni.showToast({
title: '保存成功!'
})
uni.navigateTo({
url: '/pages/projectEnd/markRoom/locationManage/locationManage'
});
that.$refs.dialogs.hideFn()
that.loadData()
that.loadData2()
}
})
}
}
}
</script>
<style lang="scss" scoped>
.typeBox {
width: 85px;
height: 80px;
display: inline-flex;
align-items: center;
justify-content: center;
margin-right: 20rpx;
font-size: 24rpx;
text-align: center;
border-radius: 20rpx;
position: relative;
margin-bottom: 20rpx;
color: white;
vertical-align: top;
padding: 0 20rpx;
.name {
font-size: 36rpx;
position: relative;
z-index: 2;
word-break: break-all;
}
.desc {
position: relative;
z-index: 2;
}
}
.bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.pageInner {
padding: 30rpx;
}
.addBox {
text-align: center;
width: 105px;
height: 78px;
display: inline-flex;
align-items: center;
justify-content: center;
border: 1px solid rgba(42, 43, 91, 0.1);
border-radius: 20rpx;
font-size: 24rpx;
color: rgba(42, 43, 91, 1);
background-color: #f6f5f8;
vertical-align: top;
.icon-add {
width: 36rpx;
height: 36rpx;
}
}
.closeBtn {
font-size: 30rpx;
color: rgba(42, 43, 91, 0.5);
padding: 20rpx 0;
text-align: center;
}
</style>