shaogen1995 vor 2 Jahren
Ursprung
Commit
254ea9047b

+ 1 - 0
backstage/src/assets/styles/reset.css

@@ -192,6 +192,7 @@ table th > .cell {
 }
 textarea {
   height: 8rem!important;
+  resize: none !important;
 }
 .disabledAc {
   color: #ccc !important;

+ 2 - 1
backstage/src/assets/styles/reset.less

@@ -106,6 +106,7 @@ table th > .cell{
 
 textarea{
   height: 8rem!important;
+	resize:none !important;
 }
 .disabledAc{
 	color: #ccc !important;
@@ -113,4 +114,4 @@ textarea{
 }
 .goodNameInput input {
 	padding-right: 70px !important;
-}
+}

+ 8 - 0
backstage/src/configue/api.js

@@ -386,3 +386,11 @@ export function goodsSort(data, cb) {
     cb(res);
   });
 }
+
+
+// 获取城市列表
+export const museumGetCity = () => {
+  return axios({
+    url: 'cms/museum/getCity',
+  })
+}

+ 101 - 28
backstage/src/pages/content/museum/componets/detail.vue

@@ -2,77 +2,150 @@
   <div class="formcon">
     <div class="formtop">
       <div class="left">
-        <el-form-item label="编号:" >
-          <el-input :disabled="true" v-model="form.num"></el-input>
+        <el-form-item label="编号:" prop="num">
+          <el-input
+            v-model="form.num"
+            maxlength="4"
+            :onkeyup="form.num=form.num.replace(/^(0+)|[^\d]+/g,'')"
+            show-word-limit
+          ></el-input>
         </el-form-item>
 
-        <el-form-item label="名称:" >
-          <el-input :disabled="true" v-model="form.name"></el-input>
+        <el-form-item label="名称:" prop="name">
+          <el-input
+            v-model="form.name"
+            maxlength="50"
+            show-word-limit
+          ></el-input>
         </el-form-item>
 
-        <el-form-item label="电话:" >
-          <el-input :disabled="true" v-model="form.tel"></el-input>
+        <el-form-item label="电话:" prop="tel">
+          <el-input
+            type="textarea"
+            v-model="form.tel"
+            maxlength="100"
+            show-word-limit
+          ></el-input>
         </el-form-item>
 
-        <el-form-item label="地址:" >
-          <el-input :disabled="true" v-model="form.address"></el-input>
+        <el-form-item label="地址:" prop="address">
+          <el-input
+            type="textarea"
+            maxlength="200"
+            show-word-limit
+            v-model="form.address"
+          ></el-input>
         </el-form-item>
       </div>
       <div class="right">
-        <el-form-item label="营业时间:" >
-          <el-input :disabled="true" v-model="form.opening"></el-input>
+        <el-form-item label="经度:" prop="lat">
+          <el-input
+            :onkeyup="(form.lat = form.lat.replace(/^(0+)|[^\d\.]+/g, ''))"
+            v-model="form.lat"
+            maxlength="20"
+            show-word-limit
+          ></el-input>
         </el-form-item>
 
-        <el-form-item label="经度:" >
-          <el-input :disabled="true" v-model="form.lat"></el-input>
+        <el-form-item label="纬度:" prop="lng">
+          <el-input
+            :onkeyup="(form.lat = form.lat.replace(/^(0+)|[^\d\.]+/g, ''))"
+            v-model="form.lng"
+            maxlength="20"
+            show-word-limit
+          ></el-input>
         </el-form-item>
 
-        <el-form-item label="纬度:" >
-          <el-input :disabled="true" v-model="form.lng"></el-input>
+        <el-form-item label="所属城市:">
+          <i class="bs">*</i>
+          <el-select
+            v-model="form.cityId"
+            placeholder="请选择"
+            style="width: 100%"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
         </el-form-item>
 
-        <el-form-item label="描述:" >
-          <el-input :disabled="true" type="textarea" maxlength="200" show-word-limit
-            :autosize="{ minRows: 2, maxRows: 4 }" v-model="form.description"></el-input>
+        <el-form-item label="营业时间:" prop="opening">
+          <el-input
+            v-model="form.opening"
+            type="textarea"
+            maxlength="200"
+            show-word-limit
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="描述:" prop="description">
+          <el-input
+            type="textarea"
+            maxlength="500"
+            show-word-limit
+            v-model="form.description"
+          ></el-input>
         </el-form-item>
       </div>
     </div>
-  
   </div>
 </template>
 
 <script>
-
-
+import { museumGetCity } from "@/configue/api";
 export default {
-  props: ["data", "rule","roleList"],
+  props: ["data", "rule", "roleList"],
   data() {
     return {
       form: this.data,
+
+      options: [],
     };
   },
-  methods:{
- 
-  }
+  methods: {},
+  async mounted() {
+    let res = await museumGetCity();
+    this.options = res.data;
+  },
 };
 </script>
 
 <style lang="less" scoped>
+
+  /deep/.el-input__inner {
+    padding-right: 60px;
+  }
+  /deep/.el-input__count-inner {
+    background: transparent;
+  }
+.bs {
+  position: absolute;
+  z-index: 99;
+  left: -93px;
+  top: 0px;
+  color: #f56c6c;
+  font-size: 14px;
+}
 .formcon {
   width: 100%;
-  .formtop,.formbom{
+  .formtop,
+  .formbom {
     width: 100%;
     display: flex;
     justify-content: flex-start;
     position: relative;
-    >div{
+    > div {
       width: 40%;
-      &:first-of-type{
+      &:first-of-type {
         margin-right: 5%;
       }
     }
   }
-  .formbom{
+  .formbom {
     align-items: center;
   }
 }

+ 21 - 13
backstage/src/pages/content/museum/data.js

@@ -20,23 +20,31 @@ let raw = {
 }
 
 let formKey = {
-  detail:{ 
-    "address": "",
-    "img": "",
-    "nickName": "",
-    "phone": "",
-    "realName": "",
-    "roleId": '',
-    "sex": 0,
-    "status": 0,
-    "thumb": "",
-    "unit": "",
-    "userName": ""
+  detail: {
+    num: '',
+    name: '',
+    tel: '',
+    address: '',
+    opening: '',
+    lat: '',
+    lng: '',
+    description: '',
+    id: null,
+    cityId: 1
   }
 }
 
 let rules = {
-  detail:{ 
+  detail: {
+    num: [{ required: true, message: "不能为空", trigger: "blur" }],
+    name: [{ required: true, message: "不能为空", trigger: "blur" }],
+    tel: [{ required: true, message: "不能为空", trigger: "blur" }],
+    address: [{ required: true, message: "不能为空", trigger: "blur" }],
+    opening: [{ required: true, message: "不能为空", trigger: "blur" }],
+    lat: [{ required: true, message: "不能为空", trigger: "blur" }],
+    lng: [{ required: true, message: "不能为空", trigger: "blur" }],
+    description: [{ required: true, message: "不能为空", trigger: "blur" }],
+
   }
 }
 

+ 24 - 24
backstage/src/pages/content/museum/edit.vue

@@ -6,10 +6,9 @@
       ref="child"
       :type="type"
       :rule="rule"
-      :justshow="true"
       :form="form"
       @cancel="backList"
-      @save="determine"
+      @save="save"
     >
       <template slot-scope="{ form }" slot="content">
         <component :data="form" :is="cp" :roleList="roleList" />
@@ -22,9 +21,10 @@
 import vdetail from "./componets/detail";
 
 import { formKey, rules } from "./data";
-import {getDetail} from "@/configue/api";
+import { save, getDetail } from "@/configue/api";
 
 export default {
+  name:'museumInd',
   components: {
     vdetail
   },
@@ -51,36 +51,36 @@ export default {
     this.getDetail()
   },
   methods: {
-    validate(cb) {
+     validate(cb) {
       let child = this.$refs.child;
       child.$refs[this.type].validate(async (valid) => {
         if (valid) {
-          if (status == 2) {
-            this.$confirm("请再次确认是否进行此审核操作?", "提示", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning",
-            })
-              .then(async () => {
-                cb();
-              })
-              .catch(() => {
-                this.$message({
-                  type: "info",
-                  message: "已取消",
-                });
-              });
-          } else {
-            cb();
-          }
+          cb();
         }
       });
     },
     cancel() {
       this.$router.back();
     },
-    determine() {
-     
+
+     save(submit = "", cb = null) {
+      this.validate(() => {
+        let params = {
+          ...this.form
+        };
+        save(this.val, params, () => {
+          if (submit) {
+            cb && cb();
+          } else {
+            this.$alert("编辑成功", "提示", {
+              confirmButtonText: "确定",
+              callback: () => {
+                this.backList();
+              },
+            });
+          }
+        });
+      });
     },
 
     async getDetail(){

+ 3 - 1
backstage/src/pages/content/museum/index.vue

@@ -1,7 +1,9 @@
 <template>
   <div>
     <main-top>
-      <div slot="con"></div>
+      <div slot="con">
+         <el-button @click="goto({ id: 'none' })" type="primary">新增</el-button>
+      </div>
     </main-top>
     <div class="tablecon noSubmune">
       <div class="tablebody">

+ 35 - 34
backstage/src/pages/content/scene/edit.vue

@@ -1,7 +1,15 @@
 <template>
   <div v-if="form">
     <main-top></main-top>
-    <editcon :key="type" ref="child" :type="type" :rule="rule" :form="form" @cancel="backList" @save="save">
+    <editcon
+      :key="type"
+      ref="child"
+      :type="type"
+      :rule="rule"
+      :form="form"
+      @cancel="backList"
+      @save="save"
+    >
       <template slot-scope="{ form }" slot="content">
         <component :data="form" :is="cp" :roleList="roleList" />
       </template>
@@ -16,18 +24,18 @@ import { formKey, rules } from "./data";
 import { save, getDetail } from "@/configue/api";
 
 export default {
-  name:'Edit',
+  name: "Edit",
   components: {
-    vdetail
+    vdetail,
   },
   data() {
     let { type, id } = this.$route.params;
     return {
-      val: 'exhibition',
+      val: "exhibition",
       type,
       id: String(id),
-      form: '',
-      roleList: []
+      form: "",
+      roleList: [],
     };
   },
   computed: {
@@ -39,7 +47,7 @@ export default {
     },
   },
   mounted() {
-    this.getDetail()
+    this.getDetail();
   },
   methods: {
     validate(cb) {
@@ -53,30 +61,29 @@ export default {
     cancel() {
       this.$router.back();
     },
-    save(submit = '', cb = null) {
+    save(submit = "", cb = null) {
       this.validate(() => {
         let params = {
-          "description": "",
-          "fileName": "",
-          "filePath": "",
-          "museumId": 0,
-          "name": "",
-          "thumb": "",
-          "type": "",
+          description: "",
+          fileName: "",
+          filePath: "",
+          museumId: 0,
+          name: "",
+          thumb: "",
+          type: "",
           id: this.id == "none" ? null : this.id,
           ...this.form,
-          "timeEnd": this.form.type == 'temp' ? this.form.opening[1] : null,
-          "timeStart": this.form.type == 'temp' ? this.form.opening[0] : null,
+          timeEnd: this.form.type == "temp" ? this.form.opening[1] : null,
+          timeStart: this.form.type == "temp" ? this.form.opening[0] : null,
         };
         save(this.val, params, () => {
           if (submit) {
-            cb && cb()
-          }
-          else {
+            cb && cb();
+          } else {
             this.$alert("编辑成功", "提示", {
               confirmButtonText: "确定",
               callback: () => {
-                this.backList()
+                this.backList();
               },
             });
           }
@@ -84,24 +91,18 @@ export default {
       });
     },
 
-
     async getDetail() {
-      if (this.id == 'none') {
-        this.form = this.cloneObject(formKey[this.$route.params.type])
+      if (this.id == "none") {
+        this.form = this.cloneObject(formKey[this.$route.params.type]);
       } else {
-        await getDetail(this.val, { id: this.id }, res => {
-
-          let opening = [
-            res.data.timeStart,
-            res.data.timeEnd
-          ]
-          this.form = { ...this.form, ...res.data, opening }
+        await getDetail(this.val, { id: this.id }, (res) => {
+          let opening = [res.data.timeStart, res.data.timeEnd];
+          this.form = { ...this.form, ...res.data, opening };
 
           console.log(res);
-
-        })
+        });
       }
-    }
+    },
   },
 };
 </script>