123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <template>
- <div class='app-container'>
- <el-form :model="form" ref="form" :rules="rules" label-width="100px" :disabled="disabled">
- <el-form-item label="门店名称:" prop="name">
- <el-input v-model="form.name" placeholder="请输入门店名称" />
- </el-form-item>
- <el-form-item label="门店图片:" prop="icon">
- <Upload list-type="picture-card" :url="form.icon" @upload="upload" :disabled="disabled" />
- </el-form-item>
- <el-form-item label="联系电话:">
- <el-input v-model="form.linkPhone" placeholder="请输入联系电话" />
- </el-form-item>
- <el-form-item label="城市筛选:" prop="cascader">
- <el-cascader style="width: 100%" v-model="form.cascader" :options="options" placeholder="请选择省市区"
- :props="{ value: 'id', label: 'name', children: 'childList', checkStrictly: true }" />
- </el-form-item>
- <el-form-item label="详细地址:" prop="address">
- <el-input v-model="form.address" placeholder="请输入详细地址" />
- </el-form-item>
- <el-form-item label="经度:" prop="longitude">
- <el-input v-model="form.longitude" placeholder="请输入经度" />
- </el-form-item>
- <el-form-item label="纬度:" prop="latitude">
- <el-input v-model="form.latitude" placeholder="请输入纬度" />
- </el-form-item>
- </el-form>
- <div class="form-btn">
- <el-button @click="cancel">取消</el-button>
- <el-button v-if="!disabled" type="primary" @click="getSubmit">确定</el-button>
- </div>
- </div>
- </template>
- <script>
- import { detail, options, submit } from '@/api/operation/map'
- export default {
- data() {
- return {
- // 表单
- form: {
- status: 0
- },
- // 省市区
- options: [],
- // 校验
- rules: {
- name: [{
- required: true, message: '请输入店铺名称', trigger: 'blur'
- }],
- icon: [{
- required: true, message: '请上传店铺图片', trigger: 'change'
- }],
- cascader: [{
- required: true, message: '请选择省市区', trigger: 'change'
- }],
- address: [{
- required: true, message: '请输入详细地址', trigger: 'blur'
- }],
- latitude: [{
- required: true, message: '请输入经度', trigger: 'blur'
- }],
- longitude: [{
- required: true, message: '请输入纬度', trigger: 'blur'
- }]
- },
- // 只读
- disabled: false
- }
- },
- mounted() {
- this.getOptions()
- if (this.$route.query.id) {
- this.getDetail()
- this.disabled = Boolean(this.$route.query.boolean)
- }
- },
- methods: {
- // 详情
- getDetail() {
- detail(this.$route.query.id).then(res => {
- if (res.code === 0) {
- this.form = res.data
- this.form.cascader = [Number(res.data.province), Number(res.data.city), Number(res.data.area)]
- }
- })
- },
- // 上传
- upload(e) {
- this.form.icon = e.file
- },
- // 省市区
- getOptions() {
- options().then(res => {
- if (res.code === 0) {
- this.options = res.data
- }
- })
- },
- cancel() {
- this.$tab.closeOpenPage("/operation/map")
- },
- // 提交
- getSubmit() {
- this.$refs.form.validate((valid) => {
- if (valid) {
- this.form.province = this.form.cascader[0]
- this.form.city = this.form.cascader[1]
- this.form.area = this.form.cascader[2]
- submit(this.form).then(res => {
- if (res.code === 0) {
- this.$message.success('提交成功!')
- this.cancel()
- }
- })
- } else {
- return false
- }
- })
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .el-form {
- .el-form-item {
- width: 500px;
- }
- }
- ::v-deep .el-dialog__wrapper {
- .el-dialog__body {
- padding: 0;
- }
- }
- </style>
|