linwu 1 год назад
Родитель
Сommit
cfe5731928
100 измененных файлов с 2598 добавлено и 2934 удалено
  1. 9 2
      src/assets/diy/css/attr.scss
  2. 42 3
      src/assets/diy/css/diy.scss
  3. 1 0
      src/components/Breadcrumb/index.vue
  4. 1 1
      src/components/Pagination/index.vue
  5. 37 37
      src/components/common/Icon.vue
  6. 1 1
      src/components/common/Search.vue
  7. 57 57
      src/components/common/WangEditor.vue
  8. 71 77
      src/layout/components/Navbar.vue
  9. 1 0
      src/store/getters.js
  10. 2 0
      src/store/modules/user.js
  11. 422 422
      src/utils/ak.js
  12. 5 3
      src/utils/index.js
  13. 115 82
      src/utils/module.js
  14. 19 19
      src/utils/openapi.js
  15. 22 22
      src/utils/predefineColors.js
  16. 1 1
      src/utils/request.js
  17. 1 1
      src/views/ad/index.vue
  18. 10 0
      src/views/adminmenu/index.vue
  19. 7 0
      src/views/adminmenu/update.vue
  20. 1 1
      src/views/agent/audit.vue
  21. 44 1
      src/views/agent/index.vue
  22. 2 2
      src/views/agentcode/index.vue
  23. 1 1
      src/views/agentcode/update.vue
  24. 4 3
      src/views/agreement/index.vue
  25. 1 1
      src/views/agreement/update.vue
  26. 2 2
      src/views/area/index.vue
  27. 1 1
      src/views/article/index.vue
  28. 1 1
      src/views/article/update.vue
  29. 1 1
      src/views/articlecategory/update.vue
  30. 1 1
      src/views/bargaingoods/index.vue
  31. 1 1
      src/views/bargaingoods/selectGoods.vue
  32. 1 1
      src/views/bottommenu/update.vue
  33. 1 1
      src/views/broadcast/index.vue
  34. 1 1
      src/views/broadcast/update.vue
  35. 1 1
      src/views/comment/index.vue
  36. 21 1
      src/views/config/index.vue
  37. 4 4
      src/views/config/messagetpl.vue
  38. 53 77
      src/views/config/miniprogram.vue
  39. 2 2
      src/views/config/operatingcity.vue
  40. 12 11
      src/views/config/pagestyle.vue
  41. 1 1
      src/views/config/points.vue
  42. 6 26
      src/views/config/rotarytable.vue
  43. 1 1
      src/views/config/subscribemessage.vue
  44. 54 74
      src/views/config/technical.vue
  45. 7 0
      src/views/config/tuanzhang.vue
  46. 128 134
      src/views/config/uploadminiprogram.vue
  47. 3 3
      src/views/coupon/index.vue
  48. 1 1
      src/views/coupon/selectGoods.vue
  49. 4 4
      src/views/coupon/update.vue
  50. 25 25
      src/views/dashboard/components/TransactionTable.vue
  51. 15 15
      src/views/dashboard/index.vue
  52. 115 112
      src/views/diyfields/auditdetail.vue
  53. 90 113
      src/views/diyfields/update.vue
  54. 70 82
      src/views/diypage/add.vue
  55. 4 4
      src/views/diypage/attr/base.vue
  56. 3 3
      src/views/diypage/attr/duo.vue
  57. 95 174
      src/views/diypage/attr/goods.vue
  58. 2 6
      src/views/diypage/attr/miaosha.vue
  59. 55 81
      src/views/diypage/attr/nav.vue
  60. 44 106
      src/views/diypage/attr/search.vue
  61. 1 1
      src/views/diypage/attr/selectGoods.vue
  62. 1 1
      src/views/diypage/attr/selectMiaosha.vue
  63. 3 3
      src/views/diypage/attr/selectTechnical.vue
  64. 1 1
      src/views/diypage/attr/selectTuan.vue
  65. 5 5
      src/views/diypage/attr/siteLink.vue
  66. 3 7
      src/views/diypage/attr/technical.vue
  67. 77 97
      src/views/diypage/attr/text.vue
  68. 2 6
      src/views/diypage/attr/tuan.vue
  69. 53 66
      src/views/diypage/attr/window.vue
  70. 5 3
      src/views/diypage/common/Attr.vue
  71. 7 4
      src/views/diypage/common/Module.vue
  72. 2 2
      src/views/diypage/diy.vue
  73. 4 4
      src/views/diypage/module/contitle.vue
  74. 21 21
      src/views/diypage/module/duo.vue
  75. 45 50
      src/views/diypage/module/goods.vue
  76. 45 50
      src/views/diypage/module/technical.vue
  77. 39 63
      src/views/diypage/module/window.vue
  78. 27 23
      src/views/diypage/module/windowmodule.vue
  79. 29 29
      src/views/diypage/preview.vue
  80. 2 2
      src/views/domainreplace/index.vue
  81. 1 1
      src/views/forhelp/index.vue
  82. 1 1
      src/views/goods/index.vue
  83. 159 252
      src/views/goods/update.vue
  84. 1 1
      src/views/goodscategory/index.vue
  85. 2 2
      src/views/goodsquantityunitl/goods.vue
  86. 2 2
      src/views/goodsquantityunitl/service.vue
  87. 74 86
      src/views/goodsquantityunitl/update.vue
  88. 1 1
      src/views/hospital/index.vue
  89. 3 3
      src/views/hospital/update.vue
  90. 125 166
      src/views/hospitalcate/index.vue
  91. 1 1
      src/views/hospitalcate/update.vue
  92. 1 1
      src/views/hospitaldepartments/index.vue
  93. 1 1
      src/views/hospitaldepartments/update.vue
  94. 1 1
      src/views/hospitallevel/index.vue
  95. 3 3
      src/views/housingestate/index.vue
  96. 5 4
      src/views/housingestate/my.vue
  97. 13 17
      src/views/housingestate/update.vue
  98. 7 5
      src/views/index/index.vue
  99. 2 2
      src/views/kefu/commonly/index.vue
  100. 120 138
      src/views/kefu/commonly/update.vue

+ 9 - 2
src/assets/diy/css/attr.scss

@@ -41,7 +41,7 @@ $color:#1890ff;
           			  p{ padding-top:5px; white-space: nowrap; text-overflow: ellipsis; color:#999;}
           			}
           }
-          .membergoods{ display: flex; background:#f1f1f1; margin-bottom:12px; margin-top:-5px;
+          .goodscard{ display: flex; background:#f1f1f1; margin-bottom:12px; margin-top:-5px;
           	  img{ width:80px; height:80px; margin-right:12px;}
           			.text{ height:80px; overflow: hidden;
           			  .p1{color:#333;}
@@ -54,6 +54,13 @@ $color:#1890ff;
           			  .p1{color:#333;}
           			  p{ padding-top:5px; white-space: nowrap; text-overflow: ellipsis; color:#999;}
           			}
+          }
+          .store{ display: flex; background:#f1f1f1; margin-bottom:12px; margin-top:-5px;
+          	  img{ width:80px; height:80px; margin-right:12px;}
+          			.text{ height:80px; overflow: hidden;
+          			  .p1{color:#333;}
+          			  p{ padding-top:5px; white-space: nowrap; text-overflow: ellipsis; color:#999;}
+          			}
           }
 			}
 			.attr-nav-add{ height:40px; display: flex; cursor:pointer; &:hover{ color:$color;} border-bottom:1px solid #eee; justify-content:center; align-items: center; span{ margin:2px 5px 0 0; font-size:15px;} }
@@ -96,4 +103,4 @@ $color:#1890ff;
 }
 .m-colorPicker .box{
     left: -60px;
-  }
+  }

+ 42 - 3
src/assets/diy/css/diy.scss

@@ -407,6 +407,7 @@ $color:#29c8a1;
           					.ju{ padding-top:5px; color:#999; font-size:11px; white-space: nowrap; overflow: hidden; text-overflow:ellipsis; }
           			}
                 .settechnical{ float: left; width: 60px; text-align: center; padding:5px 5px; margin-top: 30px; font-size: 12px; background:#F73E44; color:#fff;}
+                .setstore{ float: left; width: 60px; text-align: center; padding:5px 5px; margin-top: 30px; font-size: 12px; background:#F73E44; color:#fff;}
                 }
           }
           }
@@ -489,10 +490,10 @@ $color:#29c8a1;
     }
 
     /***会员礼包模块***/
-      .module-item-membergoods{margin-top:10px; position: relative; .mg0{ margin-top:0;}
-    		.item-membergoods-con{ position: relative; overflow: hidden;}
+      .module-item-goodscard{margin-top:10px; position: relative; .mg0{ margin-top:0;}
+    		.item-goodscard-con{ position: relative; overflow: hidden;}
     			.noadd{ height:200px; display: flex; align-items: center; justify-content: center; width:100%;}
-    			.item-membergoods{ position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: space-between; padding:10px; padding-top:0;  overflow: hidden;
+    			.item-goodscard{ position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: space-between; padding:10px; padding-top:0;  overflow: hidden;
     						&.style2{ .item{ width: calc(100%/2 - 5px);
     									.yh { font-size:10px;}
     									.price{ span { b { font-size:12px;} i{ font-size:10px;} } }
@@ -564,6 +565,44 @@ $color:#29c8a1;
     			}
     }
      /***师傅模块end***/
+     /***师傅模块***/
+       .module-item-store{margin-top:10px; position: relative; .mg0{ margin-top:0;}
+     		.item-store-con{ position: relative; overflow: hidden;}
+     			.noadd{ height:200px; display: flex; align-items: center; justify-content: center; width:100%;}
+     			.item-store{ position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: space-between; padding:10px; padding-top:0;  overflow: hidden;
+     						&.style2{ .item{ width: calc(100%/2 - 5px);
+     									.yh { font-size:10px;}
+     									.price{ span { b { font-size:12px;} i{ font-size:10px;} } }
+     							}
+     						}
+                 &.style3{ .item{ width: calc(100%/3 - 5px);
+                 .pic{ overflow: hidden; position: relative; height:100px;
+                 			img{ object-fit: cover; display:block; height:100%; width:100%;}
+                 			span{ background:red; color:#fff; padding:2px 5px; border-bottom-right-radius:5px; position: absolute; left:0; top:0;}
+                 }
+                 			.yh { font-size:10px;}
+                 			.price{ span { b { font-size:12px;} i{ font-size:10px;} } }
+                 	}
+                 }
+     						.item{ width:100%; margin-top:12px; border-radius:3px; position: relative; overflow: hidden;
+     								.pic{ overflow: hidden; position: relative; height:150px;
+     											img{ object-fit: cover; display:block; height:100%; width:100%;}
+     											span{ background:red; color:#fff; padding:2px 5px; border-bottom-right-radius:5px; position: absolute; left:0; top:0;}
+     								}
+     								.tit{ white-space: nowrap; padding-top:5px; font-size:14px; overflow: hidden; text-overflow: ellipsis;}
+     								.yh{ display: flex; overflow: hidden; justify-content: space-between; align-items:center; color:#999; margin-top:5px;
+     									span{ padding:2px 5px; background:#F73E44; color:#fff; font-size:12px;}
+     										label{flex:1; overflow: hidden; text-align: right;}
+     								}
+     								.price{ padding-top:5px; color:#666; display: flex; overflow: hidden; justify-content: space-between; align-items:center;
+     									span{ flex:1; overflow: hidden; b{ font-size:14px; color:#F73E44; } i{ color:#bfbfbf; font-style: normal; padding-left:5px; text-decoration: line-through;} }
+     										label{ padding:2px 5px; background:#F73E44; color:#fff;}
+     								}
+     								.ju{ padding-top:5px; color:#999; font-size:11px; white-space: nowrap; overflow: hidden; text-overflow:ellipsis; }
+     						}
+     			}
+     }
+      /***师傅模块end***/
 
 }
 

+ 1 - 0
src/components/Breadcrumb/index.vue

@@ -36,6 +36,7 @@ export default {
       let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
       const first = matched[0]
 
+
       if (!this.isDashboard(first)) {
         matched = [{ path: '/dashboard', meta: { title: '首页' }}].concat(matched)
       }

+ 1 - 1
src/components/Pagination/index.vue

@@ -35,7 +35,7 @@ export default {
     pageSizes: {
       type: Array,
       default() {
-        return [10, 20, 30, 50, 100, 200]
+        return [10, 20, 30, 50,100,200]
       }
     },
     layout: {

+ 37 - 37
src/components/common/Icon.vue

@@ -1,47 +1,47 @@
 <template>
-  <el-dialog title="设置字体图标" class="icon-dialog" width="800px" top="20px" :visible.sync="iconshow" :before-close="closeForm" append-to-body>
-    <ul class="icon-ul">
-      <li v-for="icon in iconList" :key="icon" @click="onSelect(icon)">
-        <i :class="icon" />
-        <div>{{ icon }}</div>
-      </li>
-    </ul>
-  </el-dialog>
+    <el-dialog title="设置字体图标" class="icon-dialog" width="800px" top="20px" :visible.sync="iconshow" :before-close="closeForm" append-to-body>
+      <ul class="icon-ul">
+        <li  v-for="icon in iconList" :key="icon" @click="onSelect(icon)">
+          <i :class="icon" />
+          <div>{{ icon }}</div>
+        </li>
+      </ul>
+    </el-dialog>
 </template>
 
 <script>
 import iconList from '@/utils/icon.json'
 export default {
-  name: 'Icon',
-  props: {
-    iconshow: {
-      type: Boolean,
-      default: false
+    name:'Icon',
+    props: {
+        iconshow: {
+            type: Boolean,
+            default: false
+        },
+        currentIconModel:{
+          type:String,
+        }
     },
-    currentIconModel: {
-      type: String
-    }
-  },
-  data() {
-    return {
-      iconList: ''
-    }
-  },
-  watch: {
-    iconshow() {
-      const originList = iconList.map(name => `el-icon-${name}`)
-      this.iconList = originList
-    }
-  },
-  methods: {
-    onSelect(icon) {
-      this.$emit('selectIcon', icon)
-      this.$emit('update:iconshow', false)
+    data() {
+        return {
+            iconList: '',
+        }
+    },
+    watch:{
+      iconshow(){
+        const originList = iconList.map(name => `el-icon-${name}`)
+        this.iconList = originList
+      }
+    },
+    methods: {
+        onSelect(icon) {
+          this.$emit('selectIcon', icon)
+          this.$emit('update:iconshow', false)
+        },
+        closeForm(){
+            this.$emit('update:iconshow', false)
+        }
     },
-    closeForm() {
-      this.$emit('update:iconshow', false)
-    }
-  }
 }
 </script>
 <style lang="scss">
@@ -95,4 +95,4 @@ export default {
   }
 }
 
-</style>
+</style>

+ 1 - 1
src/components/common/Search.vue

@@ -84,7 +84,7 @@ export default {
   },
   methods: {
     search() {
-      // this.searchData.is_search = 1
+      //this.searchData.is_search = 1
       this.$emit('update:searchData', this.searchData)
       this.$emit('refesh_list')
     },

+ 57 - 57
src/components/common/WangEditor.vue

@@ -1,71 +1,71 @@
 <template>
-  <div id="editor" ref="editor" />
+  <div id="editor" ref="editor"></div>
 </template>
 
 <script>
-import E from 'wangeditor'
-export default {
-  name: 'WangEditor',
-  props: {
-    wangEditorContent: {
-      type: String
-    },
-    isClear: {
-      type: Boolean,
-      default: false
+	import E from 'wangeditor'
+	export default {
+    name:'WangEditor',
+    props:{
+      wangEditorContent:{
+        type:String,
+      },
+      isClear: {
+        type: Boolean,
+        default: false
+      },
+      upload_config_id:{
+        type:Number,
+      }
     },
-    upload_config_id: {
-      type: Number
-    }
-  },
-  data() {
+		data() {
 		  return {
-		    editor: ''
+		    editor: ""
 		  }
-  },
-  watch: {
-    isClear(val) {
-      if (val) {
-        this.editor.txt.clear()
+    },
+    watch: {
+      isClear(val) {
+        if(val) {
+          this.editor.txt.clear()
+        }
       }
-    }
-  },
-  mounted() {
+    },
+		mounted() {
 		  this.$nextTick(function() {
 		    const _this = this
-      this.editor = new E(this.$refs.editor)
-      this.editor.config.uploadImgMaxLength = 1
-      this.editor.config.uploadFileName = 'file'
-      this.editor.config.uploadImgAccept = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp']
-      this.editor.config.uploadImgMaxSize = 10 * 1024 * 1024
-      this.editor.config.uploadImgServer = '#'
-      this.editor.create()
-      if (_this.wangEditorContent) {
-        this.editor.txt.html(_this.wangEditorContent)
-      }
-      this.editor.config.onchange = (html) => {
-        _this.$emit('update:wangEditorContent', html)
-      }
+        this.editor = new E(this.$refs.editor)
+        this.editor.config.uploadImgMaxLength = 1
+        this.editor.config.uploadFileName = 'file'
+        this.editor.config.uploadImgAccept = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp']
+        this.editor.config.uploadImgMaxSize = 10 * 1024 * 1024
+        this.editor.config.uploadImgServer = '#'
+        this.editor.create()
+        if(_this.wangEditorContent){
+          this.editor.txt.html(_this.wangEditorContent)
+        }
+        this.editor.config.onchange = (html)=>{
+          _this.$emit('update:wangEditorContent',html)
+        }
 
-      this.editor.config.uploadImgHooks = {
-        error: function(xhr, editor, resData) {
-          console.log('error', xhr, resData)
-        },
-        customInsert: function(insertImgFn, result) {
-          insertImgFn(result.data)
+        this.editor.config.uploadImgHooks = {
+          error: function(xhr, editor, resData) {
+              console.log('error', xhr, resData)
+          },
+          customInsert: function(insertImgFn, result) {
+              insertImgFn(result.data)
+          }
         }
-      }
 
-      this.editor.config.customUploadImg = function(resultFiles, insertImgFn) {
-        const formdata = new FormData()
-        formdata.append('file', resultFiles[0])
-        formdata.append('edit', true)
-        formdata.append('upload_config_id', _this.upload_config_id)
-        _this.$api.post('/Upload/upload', formdata).then(res => {
-          insertImgFn(res.data)
-        })
-      }
-		  })
-  }
-}
+        this.editor.config.customUploadImg = function (resultFiles, insertImgFn) {
+            let formdata = new FormData()
+            formdata.append('file', resultFiles[0])
+            formdata.append('edit', true)
+            formdata.append('upload_config_id', _this.upload_config_id)
+            _this.$api.post('/Upload/upload', formdata).then(res => {
+              insertImgFn(res.data)
+            })
+        }
+		  });
+		}
+	}
 </script>

+ 71 - 77
src/layout/components/Navbar.vue

@@ -1,32 +1,24 @@
 <template>
   <div class="navbar">
-    <hamburger
-      id="hamburger-container"
-      :is-active="sidebar.opened"
-      class="hamburger-container"
-      @toggleClick="toggleSideBar"
-    />
+    <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
+      @toggleClick="toggleSideBar" />
     <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
     <div class="right-menu">
       <template v-if="device!=='mobile'">
         <div v-if="store_title" class="right-menu-item"><b>{{ store_title }}</b></div>
         <div v-if="city_title" class="right-menu-item"><b>{{ city_title }}</b></div>
-        <div v-if="tuanzhang_title" class="right-menu-item"><b>{{ tuanzhang_title }}</b></div>
-        <a
-          v-if="is_console && is_w7 && !store_title && !city_title && !tuanzhang_title"
-          href="?console=1#/dashboard"
-          class="right-menu-item"
-        >控制台</a>
+        <div v-if="tuanzhang_title" class="right-menu-item"><b>{{ tuanzhang_title }}</b>
+        <a v-if="tuanzhang_sid" target="_blank" :href="'?sid=' + tuanzhang_sid + '#/dashboard'"> | 门店后台</a>
+        <a v-if="tuanzhang_sid" target="_blank" href="/admv3/?cashregister=1#/"> | 收银台</a>
+        </div>
+        <a v-if="is_console && is_w7 && !store_title && !city_title && !tuanzhang_title" href="?console=1#/dashboard"
+          class="right-menu-item">控制台</a>
         <search id="header-search" class="right-menu-item" />
         <screenfull id="screenfull" class="right-menu-item hover-effect" />
       </template>
       <el-avatar :src="avatar || require('@/assets/no_admintouxiang.png')" />
-      <el-dropdown
-        class="avatar-container right-menu-item hover-effect"
-        trigger="click"
-        placement="bottom"
-        style="cursor: pointer;margin-right:15px;"
-      >
+      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click" placement="bottom"
+        style="cursor: pointer;margin-right:15px;">
         <span class="el-dropdown-link">
           {{ username }}<i class="icontool el-icon-arrow-down" />
         </span>
@@ -42,71 +34,73 @@
 </template>
 
 <script>
-import {
-  mapGetters
-} from 'vuex'
-import Breadcrumb from '@/components/Breadcrumb'
-import Hamburger from '@/components/Hamburger'
-import Screenfull from '@/components/Screenfull'
-import Search from '@/components/HeaderSearch'
-import Password from '@/views/sysbase/password'
-
-export default {
-  components: {
-    Breadcrumb,
-    Hamburger,
-    Screenfull,
-    Search,
-    Password
-  },
-  computed: {
-    ...mapGetters([
-      'sidebar',
-      'username',
-      'is_console',
-      'store_title',
-      'city_title',
-      'tuanzhang_title',
-      'avatar',
-      'device'
-    ])
-  },
-  data() {
-    return {
-      passwordDialogStatus: false,
-      is_w7: true
-    }
-  },
-  created() {
-    if (this.getQueryString('version') == 3) {
-      this.is_w7 = false
-    }
-  },
-  methods: {
-    getQueryString(name) {
-      var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
-      var r = window.location.search.substr(1).match(reg)
-      if (r != null) return unescape(r[2])
-      return null
+  import {
+    mapGetters
+  } from 'vuex'
+  import Breadcrumb from '@/components/Breadcrumb'
+  import Hamburger from '@/components/Hamburger'
+  import Screenfull from '@/components/Screenfull'
+  import Search from '@/components/HeaderSearch'
+  import Password from '@/views/sysbase/password'
+
+  export default {
+    components: {
+      Breadcrumb,
+      Hamburger,
+      Screenfull,
+      Search,
+      Password
     },
-    toggleSideBar() {
-      this.$store.dispatch('app/toggleSideBar')
+    computed: {
+      ...mapGetters([
+        'sidebar',
+        'username',
+        'is_console',
+        'store_title',
+        'city_title',
+        'tuanzhang_title',
+        'tuanzhang_sid',
+        'avatar',
+        'device'
+      ])
     },
-    updatePassword() {
-      this.passwordDialogStatus = true
+    data() {
+      return {
+        passwordDialogStatus: false,
+        is_w7: true
+      }
     },
-    async logout() {
-      await this.$store.dispatch('user/logout')
-      // this.$router.push(`/login`)
-      var m = this.getQueryString('m')
-      if (m) {
-        window.open('./?m=' + m, '_self')
-      } else {
-        window.open('./', '_self')
+    created() {
+      if (this.getQueryString('version') == 3) {
+        this.is_w7 = false
+      }
+    },
+    methods: {
+      getQueryString(name) {
+        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
+        var r = window.location.search.substr(1).match(reg)
+        if (r != null) return unescape(r[2])
+        return null
+      },
+      toggleSideBar() {
+        this.$store.dispatch('app/toggleSideBar')
+      },
+      updatePassword() {
+        this.passwordDialogStatus = true
+      },
+      async logout() {
+        await this.$store.dispatch('user/logout')
+        //this.$router.push(`/login`)
+        var m = this.getQueryString('m');
+        if (m) {
+          window.open('./?m='+m, '_self')
+        } else {
+          window.open('./', '_self')
+        }
+
       }
     }
   }
-}
 </script>
 
 <style lang="scss" scoped>

+ 1 - 0
src/store/getters.js

@@ -11,6 +11,7 @@ const getters = {
   store_title: state => state.user.store_title,
   city_title: state => state.user.city_title,
   tuanzhang_title: state => state.user.tuanzhang_title,
+  tuanzhang_sid: state => state.user.tuanzhang_sid,
   is_console: state => state.user.is_console,
   avatar: state => state.user.avatar,
   username: state => state.user.username,

+ 2 - 0
src/store/modules/user.js

@@ -47,6 +47,7 @@ const state = {
   store_title: '',
   city_title: '',
   tuanzhang_title: '',
+  tuanzhang_sid:'',
   is_console: '',
   w7copyright: '',
   logo: '',
@@ -79,6 +80,7 @@ const mutations = {
     state.store_title = val.store_title
     state.city_title = val.city_title
     state.tuanzhang_title = val.tuanzhang_title
+    state.tuanzhang_sid = val.tuanzhang_sid
     state.is_console = val.is_console
     state.logo = val.logo
     state.w7copyright = val.w7copyright

Разница между файлами не показана из-за своего большого размера
+ 422 - 422
src/utils/ak.js


+ 5 - 3
src/utils/index.js

@@ -325,6 +325,7 @@ export function createUniqueString() {
   return (+(randomNum + timestamp)).toString(32)
 }
 
+
 /**
  * Check if an element has a class
  * @param {HTMLElement} elm
@@ -356,7 +357,8 @@ export function removeClass(ele, cls) {
   }
 }
 
-/** sku开始*/
+
+/**sku开始*/
 
 /**
  * @param {Array} arr1
@@ -366,7 +368,7 @@ export function removeClass(ele, cls) {
 export function diffArary(arr1, arr2) {
   arr1 = uniqueArr(arr1)
   arr2 = uniqueArr(arr2)
-  return arr1.concat(arr2).filter(arg => !(arr1.includes(arg) && arr2.includes(arg)))
+  return arr1.concat(arr2).filter(arg => !(arr1.includes(arg)  && arr2.includes(arg)))
 }
 
-/** sku结束*/
+/**sku结束*/

+ 115 - 82
src/utils/module.js

@@ -55,25 +55,26 @@ const bannertext = [{
   }
 }]
 
-// 厨窗列表
+//厨窗列表
 const windowlist = [{
   open: true,
   link: link,
   type: '',
   img: '',
-  selectli: [
-    { label: '图片', value: '' },
-    { label: '多图组', value: 'duo' },
-    { label: '商品组', value: 'goods' }
+  selectli:[
+    {label:'图片',value:''},
+    {label:'多图组',value:'duo'},
+    {label:'商品组',value:'goods'},
   ],
   text: {
     prompt: '名称',
     title: '',
     ...text
   },
-  windowbody: {}
+  windowbody:{},
 }]
 
+
 // 多功能列表文字
 const imgtext = [{
   open: true,
@@ -100,9 +101,9 @@ const pageData = [{
   type: 'banner',
   base: {
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     ...base
   },
   max: 12,
@@ -146,9 +147,9 @@ const pageData = [{
   base: {
     column: 4,
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     ...base
   },
   max: 15,
@@ -170,12 +171,12 @@ const pageData = [{
       ...text
     },
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     column: 2,
     source: 'choice', // choice; auto
-    is_area: false,
+    is_area:false,
     auto: {
       ptype: 0,
       category: 0,
@@ -185,7 +186,7 @@ const pageData = [{
     display: 'list', // list; slide
     sjg: true,
     sgm: false,
-    is_binding: false,
+    is_binding:false,
     ...base
   },
   max: 12,
@@ -207,12 +208,12 @@ const pageData = [{
       ...text
     },
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     column: 2,
     source: 'choice', // choice; auto
-    is_area: false,
+    is_area:false,
     auto: {
       category: 0,
       goodsSort: 'all', // all; sales; price
@@ -243,12 +244,12 @@ const pageData = [{
       ...text
     },
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     column: 2,
     source: 'choice', // choice; auto
-    is_area: false,
+    is_area:false,
     auto: {
       category: 0,
       goodsSort: 'all', // all; sales; price
@@ -264,14 +265,14 @@ const pageData = [{
   list: []
 },
 /**
-   * 秒杀模块
+   * 购物卡
    * name 名称 | type goods 标识 | base 基础样式 | title 标题 | list 商品列表 | max 最多添加4|
    */
 {
-  name: '会员礼包',
-  pic: 'membergoods.png',
-  type: 'membergoods',
-  title: { title: { prompt: '模块标题', txt: '会员礼包', ...text }, more: { prompt: '更多文字', txt: '更多', ...text }},
+  name: '购物卡',
+  pic: 'goodscard.png',
+  type: 'goodscard',
+  title: { title: { prompt: '模块标题', txt: '购物卡', ...text }, more: { prompt: '更多文字', txt: '更多', ...text }},
   base: {
     text: {
       prompt: '标题',
@@ -279,12 +280,12 @@ const pageData = [{
       ...text
     },
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     column: 2,
     source: 'auto', // choice; auto
-    is_area: false,
+    is_area:false,
     auto: {
       category: 0,
       goodsSort: 'all', // all; sales; price
@@ -298,6 +299,34 @@ const pageData = [{
   max: 12,
   list: []
 },
+/**
+   * 优惠券组模块
+   * name 名称 | type tuwen 标识 | base 基础样式 | title 标题 | list 列表 | max 最多添加6|
+   */
+{
+  name: '优惠券组',
+  pic: 'coupon.png',
+  type: 'coupon',
+  base: {
+    paddingTop: 10,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
+    ...base
+  },
+  max: 5,
+  list: [{
+    color: 'red',
+    reduce_price: '10',
+    min_price: '100.00'
+  },
+  {
+    color: 'violet',
+    reduce_price: '10',
+    min_price: '100.00'
+  }
+  ]
+},
 /**
    * 师傅模块
    * name 名称 | type technical 标识 | base 基础样式 | title 标题 | list 列表 | max 最多添加4|
@@ -314,15 +343,15 @@ const pageData = [{
       ...text
     },
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     column: 2,
     source: 'choice', // choice; auto
-    is_area: false,
+    is_area:false,
     auto: {
       category: 0,
-      goodsSort: 'all', // all; sales; price
+      Sort: 'all', // all; sales; price
       showNum: 6
     },
     display: 'list', // list; slide
@@ -331,34 +360,38 @@ const pageData = [{
   max: 12,
   list: []
 },
-
 /**
-   * 优惠券组模块
-   * name 名称 | type tuwen 标识 | base 基础样式 | title 标题 | list 列表 | max 最多添加6
+   * 师傅模块
+   * name 名称 | type store 标识 | base 基础样式 | title 标题 | list 列表 | max 最多添加4
    */
 {
-  name: '优惠券组',
-  pic: 'coupon.png',
-  type: 'coupon',
+  name: '商家组',
+  pic: 'store.png',
+  type: 'store',
+  title: { title: { prompt: '模块标题', txt: '附近商家', ...text }, more: { prompt: '更多文字', txt: '更多', ...text }},
   base: {
-    paddingTop: 10,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    text: {
+      prompt: '标题',
+      txt: '标题名称',
+      ...text
+    },
+    paddingTop: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
+    column: 2,
+    source: 'choice', // choice; auto
+    is_area:false,
+    auto: {
+      category: 0,
+      Sort: 'all', // all; sales; price
+      showNum: 6
+    },
+    display: 'list', // list; slide
     ...base
   },
-  max: 5,
-  list: [{
-    color: 'red',
-    reduce_price: '10',
-    min_price: '100.00'
-  },
-  {
-    color: 'violet',
-    reduce_price: '10',
-    min_price: '100.00'
-  }
-  ]
+  max: 12,
+  list: []
 },
 /**
    * 多功能模块
@@ -370,9 +403,9 @@ const pageData = [{
   type: 'window',
   base: {
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     paddingLeft: 0,
     sc: [{
       keys: 'style1',
@@ -406,9 +439,9 @@ const pageData = [{
     display: 'list', // list; slide
     borderradius: 0, // 圆角
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     ...base
   },
   max: 12,
@@ -424,9 +457,9 @@ const pageData = [{
   type: 'imageSingle',
   base: {
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     paddingLeft: 0,
     ...base
   },
@@ -446,9 +479,9 @@ const pageData = [{
     poster: 'video_bg.png',
     height: 235,
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     ...base
   }
 },
@@ -464,9 +497,9 @@ const pageData = [{
     icon: '',
     default_icon: 'notice_default.png',
     paddingTop: 5,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     ...base
   },
   text: {
@@ -485,9 +518,9 @@ const pageData = [{
   type: 'tuwen',
   base: {
     paddingTop: 0,
-    paddingBottom: 0,
-    marginTop: 0,
-    marginBottom: 0,
+    paddingBottom:0,
+    marginTop:0,
+    marginBottom:0,
     sc: [{
       keys: 'style1',
       title: '样式1',
@@ -520,9 +553,9 @@ const pagebase = {
   base: {
     titleTextColor: '#000000',
     titleBackgroundColor: '#ffffff',
-    titleBackground: {
-      ...base
-    },
+    titleBackground:{
+    ...base
+  },
     ...base
   },
   params: {

+ 19 - 19
src/utils/openapi.js

@@ -3,7 +3,7 @@ import { MessageBox, Message } from 'element-ui'
 
 // create an axios instance
 const service = axios.create({
-  baseURL: (process.env.NODE_ENV === 'production' ? location.origin : process.env.VUE_APP_BASE_API) + '/index', // url = base url + request url
+  baseURL:(process.env.NODE_ENV === 'production'? location.origin: process.env.VUE_APP_BASE_API)+'/index', // url = base url + request url
   withCredentials: true, // send cookies when cross-domain requests
   timeout: 5000 // request timeout
 
@@ -62,22 +62,22 @@ service.interceptors.response.use(
 )
 
 export default {
-  get: function(url, params) {
-    return new Promise((resolve, reject) => {
-      service.get(url, params).then(res => {
-        resolve(res.data)
-      }).catch(err => {
-        reject(err.data)
-      })
-    })
-  },
-  post: function(url, params) {
-    return new Promise((resolve, reject) => {
-      service.post(url, params).then(res => {
-        resolve(res.data)
-      }).catch(err => {
-        reject(err.data)
-      })
-    })
-  }
+	get: function(url, params) {
+		return new Promise((resolve, reject) => {
+			service.get(url, params).then(res => {
+				resolve(res.data);
+			}).catch(err => {
+				reject(err.data);
+			})
+		});
+	},
+	post: function(url, params) {
+		return new Promise((resolve, reject) => {
+			service.post(url, params).then(res => {
+				resolve(res.data);
+			}).catch(err => {
+				reject(err.data);
+			})
+		});
+	}
 }

+ 22 - 22
src/utils/predefineColors.js

@@ -1,26 +1,26 @@
-const predefineColors = [
-  '#000000',
-  '#ffffff',
-  '#FF0000',
-  '#00FF00',
-  '#0000FF',
-  '#1e90ff',
-  '#FFFF00',
+ const predefineColors = [
+    '#000000',
+    '#ffffff',
+    '#FF0000',
+    '#00FF00',
+    '#0000FF',
+    '#1e90ff',
+    '#FFFF00',
 
-  '#c71585',
-  'rgb(255, 30, 2)',
-  'rgba(255, 69, 0, 0.68)',
-  'rgb(255, 120, 0)',
-  'hsv(51, 100, 98)',
-  'hsva(120, 40, 94, 0.5)',
-  'hsl(181, 100%, 37%)',
-  'hsla(209, 100%, 56%, 0.73)',
-  '#eeeeee',
-  '#808080',
-  '#666666',
-  '#333333',
-  '#c7158577'
-]
+    '#c71585',
+    'rgb(255, 30, 2)',
+    'rgba(255, 69, 0, 0.68)',
+    'rgb(255, 120, 0)',
+    'hsv(51, 100, 98)',
+    'hsva(120, 40, 94, 0.5)',
+    'hsl(181, 100%, 37%)',
+    'hsla(209, 100%, 56%, 0.73)',
+    '#eeeeee',
+    '#808080',
+    '#666666',
+    '#333333',
+    '#c7158577'
+  ]
 
 export default {
   predefineColors: predefineColors

+ 1 - 1
src/utils/request.js

@@ -16,7 +16,7 @@ function getQueryString(name) {
 }
 // create an axios instance
 const service = axios.create({
-  baseURL: (process.env.NODE_ENV === 'production' ? location.origin + location.pathname.replace('admin/', '') + process.env.VUE_APP_BASE_API : process.env
+  baseURL: (process.env.NODE_ENV === 'production' ? location.origin + location.pathname.replace('admin/','') + process.env.VUE_APP_BASE_API : process.env
     .VUE_APP_BASE_API) + '/admin', // url = base url + request url
   withCredentials: true, // send cookies when cross-domain requests
   timeout: 500000 // request timeout

+ 1 - 1
src/views/ad/index.vue

@@ -182,7 +182,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 10 - 0
src/views/adminmenu/index.vue

@@ -111,6 +111,16 @@
           />
         </template>
       </el-table-column>
+      <el-table-column align="center" property="is_cashregister" label="收银菜单" show-overflow-tooltip width="">
+        <template slot-scope="scope">
+          <el-switch
+            v-model="scope.row.is_cashregister"
+            :active-value="1"
+            :inactive-value="0"
+            @change="listUpdate(scope.row,'is_cashregister')"
+          />
+        </template>
+      </el-table-column>
       <el-table-column align="center" property="is_v2" label="商城" show-overflow-tooltip width="">
         <template slot-scope="scope">
           <el-switch

+ 7 - 0
src/views/adminmenu/update.vue

@@ -98,6 +98,13 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="收银菜单">
+              <el-switch v-model="form.is_cashregister" :active-value="1" :inactive-value="0" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row>
           <el-col :span="24">
             <el-form-item label="商城">

+ 1 - 1
src/views/agent/audit.vue

@@ -155,7 +155,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 44 - 1
src/views/agent/index.vue

@@ -22,6 +22,13 @@
               @click="del(ids)"
             >删除
             </el-button>
+            <el-button
+              v-if="checkPermission('/member/dumpdata')"
+              type="primary"
+              size="small"
+              icon="el-icon-download"
+              @click="dumpdata(ids)"
+            >导出</el-button>
           </div>
         </div>
       </el-col>
@@ -145,6 +152,7 @@ import {
   confirm,
   param2Obj
 } from '@/utils/common'
+import XLSX from 'xlsx'
 export default {
   name: 'Agent',
   components: {
@@ -190,7 +198,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {
@@ -300,6 +308,41 @@ export default {
         })
       }).catch(() => {})
     },
+    dumpdata() {
+      confirm({
+        content: '确定要操作吗'
+      }).then(() => {
+        this.dumpshow = true
+        this.confirmdumpdata()
+      }).catch(() => {})
+    },
+    confirmdumpdata() {
+      let param = {
+        path: this.$route.path,
+        page: this.dumppage
+      }
+      if (this.searchData) param = Object.assign(param, this.searchData)
+      this.$api.post('/agent/dumpdata', param).then(res => {
+        if (res.data.length > 0) {
+          if (this.dumppage == 1) {
+            this.exceldata.push(res.header)
+          }
+          res.data.forEach((item) => {
+            this.exceldata.push(Object.values(item))
+          })
+          this.percentage = res.percentage
+          this.filename = res.filename
+          this.ws = XLSX.utils.aoa_to_sheet(this.exceldata)
+          this.dumppage = this.dumppage + 1
+          this.confirmdumpdata()
+        } else {
+          const wb = XLSX.utils.book_new()
+          XLSX.utils.book_append_sheet(wb, this.ws, '资料')
+          XLSX.writeFile(wb, this.filename)
+          this.dumpshow = false
+        }
+      })
+    },
     selection(selection) {
       this.ids = selection.map(item => item.id)
       this.single = selection.length != 1

+ 2 - 2
src/views/agentcode/index.vue

@@ -57,7 +57,7 @@
         show-overflow-tooltip
         width=""
       />
-      <el-table-column
+     <el-table-column
         align="left"
         property="agent_code"
         label="邀请码"
@@ -123,7 +123,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Agentcode',
+  name: 'agentcode',
   directives: { waves },
   components: {
     Search,

+ 1 - 1
src/views/agentcode/update.vue

@@ -43,7 +43,7 @@
 </template>
 <script>
 export default {
-  name: 'Agentcodeupdate',
+  name: 'agentcodeupdate',
   components: {},
   props: {
     show: {

+ 4 - 3
src/views/agreement/index.vue

@@ -12,7 +12,8 @@
       </el-col>
       <el-col :span="8">
         <div class="btn-group" style="margin-bottom:11px;float: right;">
-          <div />
+          <div>
+          </div>
         </div>
       </el-col>
     </el-row>
@@ -123,7 +124,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Agreement',
+  name: 'agreement',
   components: {
     Search,
     Pagination,
@@ -158,7 +159,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/agreement/update.vue

@@ -51,7 +51,7 @@
 <script>
 import ImagesUpload from '@/components/common/ImagesUpload.vue'
 export default {
-  name: 'Agreementupdate',
+  name: 'agreementupdate',
   components: {
     ImagesUpload
   },

+ 2 - 2
src/views/area/index.vue

@@ -50,7 +50,7 @@
         <el-table-column align="center" type="selection" width="42" />
         <el-table-column align="center" type="" property="id" label="编号" show-overflow-tooltip width="70" />
         <el-table-column align="left" property="area_name" label="名称" show-overflow-tooltip width="" />
-        <el-table-column align="left" property="letter" label="首字母" show-overflow-tooltip width="" />
+         <el-table-column align="left" property="letter" label="首字母" show-overflow-tooltip width="" />
         <el-table-column align="left" property="keyword" label="关键词" show-overflow-tooltip width="" />
         <el-table-column align="center" property="area_sort" label="排序" show-overflow-tooltip width="80">
           <template slot-scope="scope" class="area_sort">
@@ -135,7 +135,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/article/index.vue

@@ -177,7 +177,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/article/update.vue

@@ -77,7 +77,7 @@
 import WangEditor from '@/components/common/WangEditor.vue'
 export default {
   name: 'Articleupdate',
-  components: { WangEditor },
+  components: {WangEditor},
   props: {
     show: {
       type: Boolean,

+ 1 - 1
src/views/articlecategory/update.vue

@@ -59,7 +59,7 @@
 </template>
 <script>
 export default {
-  name: 'Articlecategoryupdate',
+  name: 'articlecategoryupdate',
   components: {},
   props: {
     show: {

+ 1 - 1
src/views/bargaingoods/index.vue

@@ -196,7 +196,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/bargaingoods/selectGoods.vue

@@ -115,7 +115,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/bottommenu/update.vue

@@ -25,7 +25,7 @@
         </el-row>
         <el-row>
           <el-col :span="24">
-            <el-form-item label="页面" prop="groupid">
+            <el-form-item label="页面">
               <el-select v-model="form.url" style="width:100%" filterable clearable placeholder="请选择">
                 <el-option v-for="(item,i) in urlarray" :key="i" :label="item.key" :value="item.val" />
                 <el-option label="自定义" value="customurl" />

+ 1 - 1
src/views/broadcast/index.vue

@@ -173,7 +173,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/broadcast/update.vue

@@ -58,7 +58,7 @@
 <script>
 import ImagesUpload from '@/components/common/ImagesUpload.vue'
 export default {
-  name: 'Broadcastupdate',
+  name: 'broadcastupdate',
   components: {
     ImagesUpload
   },

+ 1 - 1
src/views/comment/index.vue

@@ -143,7 +143,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.getList()
     },
     getList() {

+ 21 - 1
src/views/config/index.vue

@@ -46,6 +46,16 @@
               </el-form-item>
             </el-col>
           </el-row>-->
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="线下订单默认状态">
+                <el-radio-group v-model="form.external_order_pay">
+                  <el-radio label="0">未付款</el-radio>
+                  <el-radio label="1">已付款</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+          </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="默认订单自动结算时间" prop="automaticsettlement">
@@ -105,6 +115,16 @@
               </el-form-item>
             </el-col>
           </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="平台显示商家服务/商品">
+                <el-radio-group v-model="form.show_storegoods">
+                  <el-radio label="0">不显示</el-radio>
+                  <el-radio label="1">显示</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+          </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="首页订单播报">
@@ -180,7 +200,7 @@ export default {
   },
   data() {
     return {
-      lang: {},
+      lang:{},
       form: {},
       select: {},
       sysversion: '',

+ 4 - 4
src/views/config/messagetpl.vue

@@ -23,7 +23,7 @@
                     placeholder="请输入订单支付"
                   />
                   <el-button size="small" type="primary" plain @click="gettplid('pay_tpl')">获取</el-button>
-                  <div class="help-block">客户支付成功,平台{{ lang.technical }}/管理员会收到通知</div>
+                  <div class="help-block">客户支付成功,平台{{lang.technical}}/管理员会收到通知</div>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -53,7 +53,7 @@
                     placeholder="请输入订单发货"
                   />
                   <el-button size="small" type="primary" plain @click="gettplid('undertake_tpl')">获取</el-button>
-                  <div class="help-block">有符合{{ lang.technical }}接的单会通知</div>
+                  <div class="help-block">有符合{{lang.technical}}接的单会通知</div>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -68,7 +68,7 @@
                     :placeholder="'请输入平台派单/'+lang.technical+'接单'"
                   />
                   <el-button size="small" type="primary" plain @click="gettplid('technical_tpl')">获取</el-button>
-                  <div class="help-block">派单给{{ lang.technical }}通知</div>
+                  <div class="help-block">派单给{{lang.technical}}通知</div>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -102,7 +102,7 @@ export default {
   components: {},
   data() {
     return {
-      lang: {},
+      lang:{},
       form: {},
       loading: false,
       activeName: '公众号模板消息配置',

+ 53 - 77
src/views/config/miniprogram.vue

@@ -20,15 +20,8 @@
           <el-row>
             <el-col :span="24">
               <el-form-item label="小程序上传密钥">
-                <el-input
-                  v-model="form.private_key"
-                  style="width: 600px;margin-right: 6px;"
-                  type="textarea"
-                  auto-complete="off"
-                  :autosize="{ minRows: 16, maxRows: 20}"
-                  clearable
-                  placeholder="请输入小程序上传密钥"
-                />
+                <el-input v-model="form.private_key" style="width: 600px;margin-right: 6px;" type="textarea"
+                  auto-complete="off" :autosize="{ minRows: 16, maxRows: 20}" clearable placeholder="请输入小程序上传密钥" />
               </el-form-item>
             </el-col>
           </el-row>
@@ -40,19 +33,8 @@
             </el-col>
           </el-row>-->
         </el-tab-pane>
-        <el-tab-pane
-          v-if="sysversion=='v3'"
-          style="padding-top:10px"
-          :label="lang.technical+'端小程序配置'"
-          :name="lang.technical+'端小程序配置'"
-        >
-          <el-row>
-            <el-col :span="24">
-              <el-form-item label="原始ID">
-                <el-input v-model="form.techoriginal" auto-complete="off" clearable placeholder="请输入原始ID" />
-              </el-form-item>
-            </el-col>
-          </el-row>
+        <el-tab-pane v-if="sysversion=='v3'" style="padding-top:10px" :label="lang.technical+'端小程序配置'"
+          :name="lang.technical+'端小程序配置'">
           <el-row>
             <el-col :span="24">
               <el-form-item label="AppId">
@@ -70,15 +52,9 @@
           <el-row>
             <el-col :span="24">
               <el-form-item :label="lang.technical+'端小程序上传密钥'">
-                <el-input
-                  v-model="form.techprivate_key"
-                  style="width: 600px;margin-right: 6px;"
-                  type="textarea"
-                  auto-complete="off"
-                  :autosize="{ minRows: 16, maxRows: 20}"
-                  clearable
-                  :placeholder="'请输入'+lang.technical+'端小程序上传密钥'"
-                />
+                <el-input v-model="form.techprivate_key" style="width: 600px;margin-right: 6px;" type="textarea"
+                  auto-complete="off" :autosize="{ minRows: 16, maxRows: 20}" clearable
+                  :placeholder="'请输入'+lang.technical+'端小程序上传密钥'" />
               </el-form-item>
             </el-col>
           </el-row>
@@ -98,54 +74,54 @@
   </div>
 </template>
 <script>
-export default {
-  name: 'Configminiprogram',
-  components: {},
-  data() {
-    return {
-      lang: {},
-      form: {},
-      sysversion: '',
-      loading: false,
-      activeName: '主小程序配置',
-      rules: {}
-    }
-  },
-  mounted() {
-    this.$api.post('/Lang/getlang').then(res => {
-      this.lang = res.data
-    })
-    this.$api.get('/Sysbase/sysversion', this.form).then(res => {
-      this.sysversion = res.data
-    })
-    this.$api.post('/config/getInfo', {
-      mo: 'miniprogram'
-    }).then(res => {
-      this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
-      this.setDefaultVal('keyword')
-    })
-  },
-  methods: {
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.$api.post('/config/update', this.form).then(res => {
-            this.$message({
-              message: '操作成功',
-              type: 'success'
-            })
-          }).catch(() => {
-            this.loading = false
-          })
-        }
+  export default {
+    name: 'Configminiprogram',
+    components: {},
+    data() {
+      return {
+        lang: {},
+        form: {},
+        sysversion: '',
+        loading: false,
+        activeName: '主小程序配置',
+        rules: {}
+      }
+    },
+    mounted() {
+      this.$api.post('/Lang/getlang').then(res => {
+        this.lang = res.data
+      })
+      this.$api.get('/Sysbase/sysversion', this.form).then(res => {
+        this.sysversion = res.data
+      })
+      this.$api.post('/config/getInfo', {
+        mo: 'miniprogram'
+      }).then(res => {
+        this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
+        this.setDefaultVal('keyword')
       })
     },
-    setDefaultVal(key) {
-      if (this.form[key] == null || this.form[key] == '') {
-        this.form[key] = []
+    methods: {
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true
+            this.$api.post('/config/update', this.form).then(res => {
+              this.$message({
+                message: '操作成功',
+                type: 'success'
+              })
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      setDefaultVal(key) {
+        if (this.form[key] == null || this.form[key] == '') {
+          this.form[key] = []
+        }
       }
     }
   }
-}
-</script>
+</script>

+ 2 - 2
src/views/config/operatingcity.vue

@@ -69,8 +69,8 @@
             <el-col :span="24">
               <el-form-item label="限制城市下单">
                 <el-radio-group v-model="form.is_limit">
-                  <el-radio label="0">限制</el-radio>
-                  <el-radio label="1">不限制</el-radio>
+                  <el-radio label="1">限制</el-radio>
+                  <el-radio label="0">不限制</el-radio>
                 </el-radio-group>
                 <div class="help-block">如果设置为限制,只有开通城市代理的地区才可以下单</div>
               </el-form-item>

+ 12 - 11
src/views/config/pagestyle.vue

@@ -7,9 +7,10 @@
             <el-col :span="24">
               <el-form-item label="分类页样式">
                 <el-radio-group v-model="form.categorystyle">
-                  <el-radio label="1">一级分类展示</el-radio>
+                  <el-radio label="1">一级分类展示(列表)</el-radio>
+                  <el-radio label="3">一级分类展示(平铺)</el-radio>
                   <el-radio label="2">二级分类展示</el-radio>
-                  <el-radio label="3">一级分类展示2</el-radio>
+                  
                 </el-radio-group>
               </el-form-item>
             </el-col>
@@ -24,32 +25,32 @@
               </el-form-item>
             </el-col>
           </el-row>
-
+          
           <el-row>
             <el-col :span="24">
               <el-form-item label="前端UI主题颜色">
-                <el-color-picker v-model="form.appstylecolor" :predefine="predefineColors" size="small" show-alpha />
+                <el-color-picker v-model="form.appstylecolor" :predefine="predefineColors" size="small" show-alpha></el-color-picker>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="底部菜单文字颜色">
-                <el-color-picker v-model="form.bottommenucolor" :predefine="predefineColors" size="small" show-alpha />
+                <el-color-picker v-model="form.bottommenucolor" :predefine="predefineColors" size="small" show-alpha></el-color-picker>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="底部菜单选中文字颜色">
-                <el-color-picker v-model="form.bottommenuselectedColor" :predefine="predefineColors" size="small" show-alpha />
+                 <el-color-picker v-model="form.bottommenuselectedColor" :predefine="predefineColors" size="small" show-alpha></el-color-picker>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="底部菜单背景颜色">
-                <el-color-picker v-model="form.bottommenubackgroundColor" :predefine="predefineColors" size="small" show-alpha />
+                <el-color-picker v-model="form.bottommenubackgroundColor" :predefine="predefineColors" size="small" show-alpha></el-color-picker>
               </el-form-item>
             </el-col>
           </el-row>
@@ -68,7 +69,7 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="个人中心背景色" prop="userstylebgcolor">
-                  <el-color-picker v-model="form.userstylebgcolor" :predefine="predefineColors" size="small" show-alpha />
+                  <el-color-picker v-model="form.userstylebgcolor" :predefine="predefineColors" size="small" show-alpha></el-color-picker>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -136,7 +137,7 @@ export default {
   },
   data() {
     return {
-      lang: {},
+      lang:{},
       form: {
       },
       predefineColors: [],
@@ -147,8 +148,8 @@ export default {
     }
   },
   mounted() {
-    this.predefineColors = predefineColors.predefineColors
-    // console.log(this.predefineColors);
+    this.predefineColors = predefineColors.predefineColors;
+    //console.log(this.predefineColors);
     this.$api.post('/Lang/getlang').then(res => {
       this.lang = res.data
     })

+ 1 - 1
src/views/config/points.vue

@@ -104,7 +104,7 @@ export default {
   mounted() {
     this.$api.post('/Lang/getlang').then(res => {
       this.lang = res.data
-      this.activeName = '送' + this.lang.points + '设置'
+      this.activeName = '送'+this.lang.points +"设置";
     })
     this.$api.post('/config/getInfo', { mo: 'points' }).then(res => {
       this.form = JSON.stringify(res.data) == '[]' ? {} : res.data

+ 6 - 26
src/views/config/rotarytable.vue

@@ -45,44 +45,24 @@
           <el-row>
             <el-col :span="24">
               <el-form-item label="抽奖次数" prop="participate_num">
-                <el-input-number
-                  v-model="form.participate_num"
-                  controls-position="right"
-                  style="width:260px;"
-                  auto-complete="off"
-                  clearable
-                  :min="0"
-                  placeholder="抽奖次数"
-                />
+                <el-input-number v-model="form.participate_num" controls-position="right" style="width:260px;" auto-complete="off"
+                  clearable :min="0" placeholder="抽奖次数" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item :label="'需要'+lang.points" prop="pay_points">
-                <el-input-number
-                  v-model="form.pay_points"
-                  controls-position="right"
-                  style="width:260px;"
-                  auto-complete="off"
-                  clearable
-                  :min="0"
-                  :placeholder="'需要'+lang.points"
-                />
+                <el-input-number v-model="form.pay_points" controls-position="right" style="width:260px;" auto-complete="off"
+                  clearable :min="0" :placeholder="'需要'+lang.points" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="抽奖说明">
-                <el-input
-                  v-model="form.content"
-                  type="textarea"
-                  auto-complete="off"
-                  :autosize="{ minRows: 10, maxRows: 20}"
-                  clearable
-                  placeholder="请输入抽奖说明"
-                />
+                <el-input v-model="form.content" type="textarea" auto-complete="off"
+                  :autosize="{ minRows: 10, maxRows: 20}" clearable placeholder="请输入抽奖说明" />
               </el-form-item>
             </el-col>
           </el-row>

+ 1 - 1
src/views/config/subscribemessage.vue

@@ -51,7 +51,7 @@
                     placeholder="请输入订单发货"
                   />
                   <el-button size="small" type="primary" plain @click="gettplid('staff_tpl')">获取</el-button>
-                  <div class="help-block">后台指派{{ lang.technical }}后向用户发送消息</div>
+                  <div class="help-block">后台指派{{lang.technical}}后向用户发送消息</div>
                 </el-form-item>
               </el-col>
             </el-row>

+ 54 - 74
src/views/config/technical.vue

@@ -10,39 +10,29 @@
                   <el-radio label="0">关闭</el-radio>
                   <el-radio label="1">开启</el-radio>
                 </el-radio-group>
-                <div class="help-block">开启后,{{ lang.technical }}可以手机端抢单</div>
+                <div class="help-block">开启后,{{lang.technical}}可以手机端抢单</div>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="默认返佣比例">
-                <el-input
-                  v-model="form.return_percent"
-                  style="width:500px;"
-                  auto-complete="off"
-                  clearable
-                  placeholder="请输入默认佣金比例"
-                >
+                <el-input v-model="form.return_percent" style="width:500px;" auto-complete="off" clearable
+                  placeholder="请输入默认佣金比例">
                   <template slot="append">%</template>
                 </el-input>
                 <div class="help-block">
-                  如果{{ lang.technical }}没有等级,佣金按这里的比例结算。<br>
-                  注:如果商家/服务点的{{ lang.technical }},返佣比例需要减去商家的返佣比例。<br>
-                  比如:{{ lang.technical }}返佣是60%,商家返佣10%,最终商家的{{ lang.technical }}返佣50%</div>
+                  如果{{lang.technical}}没有等级,佣金按这里的比例结算。<br>
+                  注:如果商家/服务点的{{lang.technical}},返佣比例需要减去商家的返佣比例。<br>
+                  比如:{{lang.technical}}返佣是60%,商家返佣10%,最终商家的{{lang.technical}}返佣50%</div>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="最少提现额度">
-                <el-input
-                  v-model="form.min_money"
-                  style="width:500px;"
-                  auto-complete="off"
-                  clearable
-                  placeholder="请输入最少提现额度"
-                >
+                <el-input v-model="form.min_money" style="width:500px;" auto-complete="off" clearable
+                  placeholder="请输入最少提现额度">
                   <template slot="append">元</template>
                 </el-input>
               </el-form-item>
@@ -51,13 +41,8 @@
           <el-row>
             <el-col :span="24">
               <el-form-item label="每日提现上限">
-                <el-input
-                  v-model="form.cash_max_day"
-                  style="width:500px;"
-                  auto-complete="off"
-                  clearable
-                  placeholder="请输入每日提现上限"
-                >
+                <el-input v-model="form.cash_max_day" style="width:500px;" auto-complete="off" clearable
+                  placeholder="请输入每日提现上限">
                   <template slot="append">元</template>
                 </el-input>
                 <div class="help-block">0元表示不限制每日提现金额</div>
@@ -67,13 +52,8 @@
           <el-row>
             <el-col :span="24">
               <el-form-item label="提现手续费">
-                <el-input
-                  v-model="form.cash_service_charge"
-                  style="width:500px;"
-                  auto-complete="off"
-                  clearable
-                  placeholder="请输入提现手续费"
-                >
+                <el-input v-model="form.cash_service_charge" style="width:500px;" auto-complete="off" clearable
+                  placeholder="请输入提现手续费">
                   <template slot="append">%</template>
                 </el-input>
                 <div class="help-block">0表示不设置提现手续费
@@ -95,51 +75,51 @@
   </div>
 </template>
 <script>
-export default {
-  name: 'Configtechnical',
-  components: {},
-  data() {
-    return {
-      lang: {},
-      form: {},
-      loading: false,
-      activeName: '',
-      rules: {}
-    }
-  },
-  mounted() {
-    this.$api.post('/Lang/getlang').then(res => {
-      this.lang = res.data
-      this.activeName = this.lang.technical + '设置'
-    })
-    this.$api.post('/config/getInfo', {
-      mo: 'technical'
-    }).then(res => {
-      this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
-      this.setDefaultVal('keyword')
-    })
-  },
-  methods: {
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.$api.post('/config/update', this.form).then(res => {
-            this.$message({
-              message: '操作成功',
-              type: 'success'
-            })
-          }).catch(() => {
-            this.loading = false
-          })
-        }
+  export default {
+    name: 'Configtechnical',
+    components: {},
+    data() {
+      return {
+        lang: {},
+        form: {},
+        loading: false,
+        activeName: '',
+        rules: {}
+      }
+    },
+    mounted() {
+      this.$api.post('/Lang/getlang').then(res => {
+        this.lang = res.data
+        this.activeName = this.lang.technical +"设置";
+      })
+      this.$api.post('/config/getInfo', {
+        mo: 'technical'
+      }).then(res => {
+        this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
+        this.setDefaultVal('keyword')
       })
     },
-    setDefaultVal(key) {
-      if (this.form[key] == null || this.form[key] == '') {
-        this.form[key] = []
+    methods: {
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true
+            this.$api.post('/config/update', this.form).then(res => {
+              this.$message({
+                message: '操作成功',
+                type: 'success'
+              })
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      setDefaultVal(key) {
+        if (this.form[key] == null || this.form[key] == '') {
+          this.form[key] = []
+        }
       }
     }
   }
-}
 </script>

+ 7 - 0
src/views/config/tuanzhang.vue

@@ -13,6 +13,13 @@
               </el-form-item>
             </el-col>
           </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="只显示当前城市的小区" prop="status">
+                <el-switch v-model="form.is_city_housingestate" active-value="1" inactive-value="0" />
+              </el-form-item>
+            </el-col>
+          </el-row>
           <el-row>
             <el-col :span="24">
               <el-form-item label="商品订单关联团长">

+ 128 - 134
src/views/config/uploadminiprogram.vue

@@ -2,34 +2,28 @@
   <div class="app-container ">
     <el-form ref="form" size="small" :model="form" :rules="rules" label-width="180px">
       <el-tabs>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="版本号">
-              <el-input v-model="form.version" auto-complete="off" clearable placeholder="请输入版本号" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="描述">
-              <el-input
-                v-model="form.desctext"
-                type="textarea"
-                auto-complete="off"
-                :autosize="{ minRows: 6, maxRows: 10}"
-                clearable
-                placeholder="请输入描述"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item>
-              <el-button size="small" type="primary" :loading="loading" @click="submit">上传小程序</el-button>
-            </el-form-item>
-          </el-col>
-        </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="版本号">
+                <el-input v-model="form.version" auto-complete="off" clearable placeholder="请输入版本号" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="描述">
+                <el-input v-model="form.desctext"  type="textarea"
+                  auto-complete="off" :autosize="{ minRows: 6, maxRows: 10}" clearable placeholder="请输入描述" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item>
+                <el-button size="small" type="primary" :loading="loading" @click="submit">上传小程序</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
       </el-tabs>
     </el-form>
     <div>
@@ -96,120 +90,120 @@
   </div>
 </template>
 <script>
-import Pagination from '@/components/Pagination'
-export default {
-  name: 'Configuploadminiprogram',
-  components: { Pagination },
-  data() {
-    return {
-      form: {},
-      ids: [],
-      list: [],
-      page_data: {
-        limit: 20,
-        page: 1,
-        total: 20
-      },
-      sysversion: '',
-      loading: false,
-      rules: {}
-    }
-  },
-  mounted() {
-    this.$api.get('/Sysbase/sysversion', this.form).then(res => {
-      this.sysversion = res.data
-    })
-    this.getInfo()
-    this.index()
-  },
-  methods: {
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.form.path = this.$route.path
-          this.$api.post('/uploadminiprogram/update', this.form).then(res => {
-            this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
-            this.$message({
-              message: '上传成功',
-              type: 'success'
-            })
-            this.getInfo()
-            this.index()
-            this.loading = false
-          }).catch(() => {
-            this.loading = false
-          })
-        }
-      })
-    },
-    getInfo() {
-      this.$api.post('/uploadminiprogram/getInfo', {
-        path: this.$route.path
-      }).then(res => {
-        this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
-        this.setDefaultVal('keyword')
-      })
-    },
-    setDefaultVal(key) {
-      if (this.form[key] == null || this.form[key] == '') {
-        this.form[key] = []
+  import Pagination from '@/components/Pagination'
+  export default {
+    name: 'Configuploadminiprogram',
+    components: {Pagination},
+    data() {
+      return {
+        form: {},
+        ids: [],
+        list: [],
+        page_data: {
+          limit: 20,
+          page: 1,
+          total: 20
+        },
+        sysversion: '',
+        loading: false,
+        rules: {}
       }
     },
-    index() {
-      const param = {
-        path: this.$route.path,
-        limit: this.page_data.limit,
-        page: this.page_data.page
-      }
-      Object.assign(param, this.searchData)
-      this.loading = true
-
-      this.$api.post('/uploadminiprogram/index', param).then(res => {
-        this.list = res.data.data
-        this.page_data.total = res.data.total
-        this.loading = false
-        // console.log(this.page_data);
-        if (this.page_data.page == 1) {
-          this.searchForm = [
-            {
-              type: 'Input',
-              label: '关键词',
-              prop: 'keyword',
-              width: '230px'
-            }
-          ]
-        }
+    mounted() {
+      this.$api.get('/Sysbase/sysversion', this.form).then(res => {
+        this.sysversion = res.data
       })
+      this.getInfo()
+      this.index()
     },
-    listUpdate(row, field) {
-      if (row.id) {
-        this.$api.post('/uploadminiprogram/listUpdate', {
-          id: row.id,
-          [field]: row[field]
+    methods: {
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true;
+            this.form.path = this.$route.path;
+            this.$api.post('/uploadminiprogram/update', this.form).then(res => {
+              this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
+              this.$message({
+                message: '上传成功',
+                type: 'success'
+              })
+              this.getInfo()
+              this.index()
+              this.loading = false
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      getInfo(){
+        this.$api.post('/uploadminiprogram/getInfo', {
+          path: this.$route.path
         }).then(res => {
-          this.$message({
-            message: '操作成功',
-            type: 'success'
-          })
+          this.form = JSON.stringify(res.data) == '[]' ? {} : res.data
+          this.setDefaultVal('keyword')
         })
-      }
-    },
-    selection(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length != 1
-      this.multiple = !selection.length
-    },
-    rowClass({
-      row,
-      rowIndex
-    }) {
-      for (let i = 0; i < this.ids.length; i++) {
-        if (row.id === this.ids[i]) {
-          return 'rowLight'
+      },
+      setDefaultVal(key) {
+        if (this.form[key] == null || this.form[key] == '') {
+          this.form[key] = []
+        }
+      },
+      index() {
+        const param = {
+          path: this.$route.path,
+          limit: this.page_data.limit,
+          page: this.page_data.page
+        }
+        Object.assign(param, this.searchData)
+        this.loading = true
+
+        this.$api.post('/uploadminiprogram/index', param).then(res => {
+          this.list = res.data.data
+          this.page_data.total = res.data.total
+          this.loading = false
+          // console.log(this.page_data);
+          if (this.page_data.page == 1) {
+            this.searchForm = [
+              {
+                type: 'Input',
+                label: '关键词',
+                prop: 'keyword',
+                width: '230px'
+              }
+            ]
+          }
+        })
+      },
+      listUpdate(row, field) {
+        if (row.id) {
+          this.$api.post('/uploadminiprogram/listUpdate', {
+            id: row.id,
+            [field]: row[field]
+          }).then(res => {
+            this.$message({
+              message: '操作成功',
+              type: 'success'
+            })
+          })
+        }
+      },
+      selection(selection) {
+        this.ids = selection.map(item => item.id)
+        this.single = selection.length != 1
+        this.multiple = !selection.length
+      },
+      rowClass({
+        row,
+        rowIndex
+      }) {
+        for (let i = 0; i < this.ids.length; i++) {
+          if (row.id === this.ids[i]) {
+            return 'rowLight'
+          }
         }
       }
     }
   }
-}
 </script>

+ 3 - 3
src/views/coupon/index.vue

@@ -49,12 +49,12 @@
       >
         <el-table-column align="center" type="selection" width="42" />
         <el-table-column align="center" property="id" label="编号" show-overflow-tooltip width="70" />
-        <el-table-column align="left" property="name" label="名称" show-overflow-tooltip width="200" />
+        <el-table-column align="left" property="name" label="名称" show-overflow-tooltip width="160" />
         <el-table-column align="left" property="ptype" label="发放方式" show-overflow-tooltip width="" />
         <el-table-column align="left" property="buy_price" label="购买价格" show-overflow-tooltip width="" />
         <el-table-column align="left" property="coupon_type" label="类型" show-overflow-tooltip width="" />
-        <el-table-column align="left" property="couponway" label="优惠方案" show-overflow-tooltip width="" />
-        <el-table-column align="left" property="expire_type" label="使用期限" show-overflow-tooltip width="380" />
+        <el-table-column align="left" property="couponway" label="优惠方案" show-overflow-tooltip width="300" />
+        <el-table-column align="left" property="expire_type" label="使用期限" show-overflow-tooltip width="300" />
         <el-table-column align="left" property="color" label="优惠券颜色" show-overflow-tooltip width="" />
         <el-table-column align="center" property="status" label="状态" show-overflow-tooltip width="">
           <template slot-scope="scope">

+ 1 - 1
src/views/coupon/selectGoods.vue

@@ -115,7 +115,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 4 - 4
src/views/coupon/update.vue

@@ -201,12 +201,12 @@
   </div>
 </template>
 <script>
-import SelectGoods from '@/views/coupon/selectGoods.vue'
-import Treeselect from '@riophae/vue-treeselect'
-import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+  import SelectGoods from '@/views/coupon/selectGoods.vue'
+  import Treeselect from '@riophae/vue-treeselect'
+  import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 export default {
   name: 'Couponupdate',
-  components: { Treeselect, SelectGoods },
+  components: {Treeselect,SelectGoods},
   props: {
     show: {
       type: Boolean,

+ 25 - 25
src/views/dashboard/components/TransactionTable.vue

@@ -21,33 +21,33 @@
 </template>
 
 <script>
-export default {
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        success: 'success',
-        pending: 'danger'
+  export default {
+    filters: {
+      statusFilter(status) {
+        const statusMap = {
+          success: 'success',
+          pending: 'danger'
+        }
+        return statusMap[status]
+      },
+      orderNoFilter(str) {
+        return str.substring(0, 30)
       }
-      return statusMap[status]
     },
-    orderNoFilter(str) {
-      return str.substring(0, 30)
-    }
-  },
-  data() {
-    return {
-      list: null
-    }
-  },
-  created() {
-    this.fetchData()
-  },
-  methods: {
-    fetchData() {
-      this.$api.get('/transaction/list').then(res => {
-        this.list = response.data.items.slice(0, 8)
-      })
+    data() {
+      return {
+        list: null
+      }
+    },
+    created() {
+      this.fetchData()
+    },
+    methods: {
+      fetchData() {
+        this.$api.get('/transaction/list').then(res => {
+          this.list = response.data.items.slice(0, 8)
+        })
+      }
     }
   }
-}
 </script>

+ 15 - 15
src/views/dashboard/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="dashboard-editor-container">
     <el-row :gutter="40" class="panel-group">
-      <el-col class="card-panel-col">
+      <el-col v-if="checkPermission('/dashboard/deliverOrder')" class="card-panel-col">
         <div class="card-panel" @click="gotoorder">
           <div class="card-panel-icon-wrapper icon-message">
             <svg-icon icon-class="message" class-name="card-panel-icon" />
@@ -14,7 +14,7 @@
           </div>
         </div>
       </el-col>
-      <el-col class="card-panel-col">
+      <el-col v-if="checkPermission('/dashboard/order_paytotal')" class="card-panel-col">
         <div class="card-panel" @click="gotoorder">
           <div class="card-panel-icon-wrapper icon-money">
             <svg-icon icon-class="money" class-name="card-panel-icon" />
@@ -27,7 +27,7 @@
           </div>
         </div>
       </el-col>
-      <el-col class="card-panel-col">
+      <el-col v-if="checkPermission('/dashboard/returnOrder')" class="card-panel-col">
         <div class="card-panel" @click="gotoapge('/orderrefund/index')">
           <div class="card-panel-icon-wrapper icon-shopping">
             <svg-icon icon-class="shopping" class-name="card-panel-icon" />
@@ -40,7 +40,7 @@
           </div>
         </div>
       </el-col>
-      <el-col class="card-panel-col">
+      <el-col v-if="checkPermission('/dashboard/member_count')" class="card-panel-col">
         <div class="card-panel" @click="gotoapge('/member/index')">
           <div class="card-panel-icon-wrapper icon-people">
             <svg-icon icon-class="peoples" class-name="card-panel-icon" />
@@ -53,7 +53,7 @@
           </div>
         </div>
       </el-col>
-      <el-col v-if="version=='v3'" class="card-panel-col">
+      <el-col v-if="checkPermission('/dashboard/technical_count') && version=='v3'" class="card-panel-col">
         <div class="card-panel" @click="gotoapge('/technical/index')">
           <div class="card-panel-icon-wrapper icon-themaster">
             <svg-icon icon-class="themaster" class-name="card-panel-icon" />
@@ -61,13 +61,13 @@
           <div class="card-panel-description">
             <div class="card-panel-num">{{ statistical.technical_count }}</div>
             <div class="card-panel-text">
-              {{ lang.technical }}数
+              {{lang.technical}}数
             </div>
           </div>
         </div>
       </el-col>
       <el-col v-else class="card-panel-col">
-        <div class="card-panel" @click="gotoapge('/agent/index')">
+        <div v-if="checkPermission('/dashboard/agent_count')" class="card-panel" @click="gotoapge('/agent/index')">
           <div class="card-panel-icon-wrapper icon-tree">
             <svg-icon icon-class="tree" class-name="card-panel-icon" />
           </div>
@@ -80,11 +80,11 @@
         </div>
       </el-col>
     </el-row>
-    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;border-radius: 10px;">
+    <el-row v-if="checkPermission('/dashboard/clinchadeal')" style="background:#fff;padding:16px 16px 0;margin-bottom:32px;border-radius: 10px;">
       <line-chart :chart-data="lineChartData" />
     </el-row>
     <el-row :gutter="32">
-      <el-col :xs="24" :sm="24" :lg="8">
+      <el-col v-if="checkPermission('/dashboard/goodssaletop5')" :xs="24" :sm="24" :lg="8">
         <div class="bottom_itemBox">
           <div class="flex_bbox">
             <div class="rank_title">销量排行TOP5</div>
@@ -113,10 +113,10 @@
           </div>
         </div>
       </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
+      <el-col v-if="checkPermission('/dashboard/service_timestop5')" :xs="24" :sm="24" :lg="8">
         <div v-if="version=='v3'" class="bottom_itemBox">
           <div class="flex_bbox">
-            <div class="rank_title">{{ lang.technical }}服务排行TOP5</div>
+            <div class="rank_title">{{lang.technical}}服务排行TOP5</div>
             <!--<select class="rank_select" name="select_type1">
               <option value="1">本月</option>
               <option value="0">全部</option>
@@ -169,7 +169,7 @@
           </div>
         </div>
       </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
+      <el-col v-if="checkPermission('/dashboard/conversionrate')" :xs="24" :sm="24" :lg="8">
         <div class="bottom_itemBox">
           <div class="flex_bbox">
             <div class="rank_title">昨天转化</div>
@@ -238,9 +238,9 @@ export default {
       this.$router.push({ path: page })
     },
     gotoorder() {
-      var page = '/order/goods'
-      if (this.version == 'v3') {
-        page = '/order/service'
+      var page = '/order/goods';
+      if(this.version=='v3'){
+        page = '/order/service';
       }
 
       this.$router.push({ path: page })

+ 115 - 112
src/views/diyfields/auditdetail.vue

@@ -1,66 +1,69 @@
 <template>
   <div>
-    <el-dialog
-      :title="dialogtitle"
-      width="900px"
-      class="icon-dialog"
-      :visible.sync="show"
-      :before-close="closeForm"
-      append-to-body
-      @open="open"
-    >
-      <el-form
-        ref="form"
-        :size="size"
-        :model="form"
-        :rules="rules"
-        :label-width="$store.getters.device !== 'mobile'?'18%':'90px'"
-      >
+    <el-dialog :title="dialogtitle" width="900px" class="icon-dialog" :visible.sync="show" :before-close="closeForm"
+      append-to-body @open="open">
+      <el-form ref="form" :size="size" :model="form" :rules="rules"
+        :label-width="$store.getters.device !== 'mobile'?'18%':'90px'">
         <el-row v-for="(item, index) in form.fields" :key="index">
           <el-col v-if="item.inputtype === 'text'" :span="24">
             <el-form-item :label="item.viewmingcheng">
-              <el-input
-                v-model="item.fieldsvalue"
-                auto-complete="off"
-                clearable
-                :placeholder="'请输入'+item.viewmingcheng"
-              />
+              <el-input v-model="item.fieldsvalue" auto-complete="off" clearable
+                :placeholder="'请输入' + item.viewmingcheng"
+                :disabled="(item.fieldsmingcheng == 'username' && !!form.id)" />
             </el-form-item>
           </el-col>
           <el-col v-if="item.inputtype === 'textarea'" :span="24">
             <el-form-item :label="item.viewmingcheng">
-              <el-input
-                v-model="item.fieldsvalue"
-                type="textarea"
-                auto-complete="off"
-                :autosize="{ minRows: 2, maxRows: 18}"
-                clearable
-                :placeholder="'请输入'+item.viewmingcheng"
-              />
+              <el-input v-model="item.fieldsvalue" type="textarea" auto-complete="off"
+                :autosize="{ minRows: 2, maxRows: 18}" clearable :placeholder="'请输入'+item.viewmingcheng" />
             </el-form-item>
           </el-col>
-          <el-col v-if="item.inputtype === 'pics'" :span="24">
+          <el-col v-if="item.inputtype === 'pic'" :span="24">
             <el-form-item :label="item.viewmingcheng">
               <ImagesUpload size="small" file-type="image" :image.sync="item.fieldsvalue" />
             </el-form-item>
           </el-col>
-          <el-col v-if="item.inputtype === 'select'" :span="24">
-            <el-form-item v-if="item.fieldsmingcheng==='province_id'" :label="item.viewmingcheng">
-              <el-cascader v-model="item.fieldsvalue" expand-trigger="hover" :options="areaoptions" />
+          <el-col v-if="item.inputtype === 'pics'" :span="24">
+            <el-form-item :label="item.viewmingcheng" prop="images">
+              <ImagesUpload size="small" file-type="images" :images.sync="item.fieldsvalue" />
+            </el-form-item>
+          </el-col>
+          <el-col v-if="item.inputtype === 'video'" :span="24">
+            <el-form-item :label="item.viewmingcheng">
+              <ImagesUpload size="small" file-type="file" :file.sync="item.fieldsvalue" />
+              <div class="help-block">支持格试:mp4,3gp,m3u8</div>
+            </el-form-item>
+          </el-col>
+          <el-col v-if="item.inputtype === 'lbs'" :span="24">
+            <el-form-item :label="item.viewmingcheng">
+              <el-cascader v-model="item.fieldsvalue" expand-trigger="hover" :change-on-select="true"
+                :options="areaoptions" />
             </el-form-item>
-            <el-form-item v-else :label="item.viewmingcheng">
+          </el-col>
+          <el-col v-if="item.inputtype === 'select'" :span="24">
+            <el-form-item :label="item.viewmingcheng">
               <el-select v-model="item.fieldsvalue" style="width:100%" filterable clearable placeholder="请选择">
-                <el-option v-for="(item,i) in item.selectvaluearray" :key="i" :label="item.key" :value="item.val" />
+                <el-option v-for="(item, i) in item.selectvaluearray" :key="i" :label="item.key" :value="item.val" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col v-if="item.inputtype === 'radio'" :span="24">
             <el-form-item :label="item.viewmingcheng">
               <el-radio-group v-model="item.fieldsvalue">
-                <el-radio v-for="(item,i) in item.selectvaluearray" :key="i" :label="item.val">{{ item.key }}</el-radio>
+                <el-radio v-for="(item, i) in item.selectvaluearray" :key="i"
+                  :label="item.val">{{ item.key }}</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
+          <el-col v-if="item.inputtype === 'checkbox'" :span="24">
+            <el-form-item :label="item.viewmingcheng">
+              <el-checkbox-group v-model="item.fieldsvalue">
+                <el-checkbox v-for="(item, i) in item.selectvaluearray" :key="i" :label="item.val.toString()">
+                  {{ item.key }}
+                </el-checkbox>
+              </el-checkbox-group>
+            </el-form-item>
+          </el-col>
           <el-col v-if="item.inputtype === 'switch'" :span="24">
             <el-form-item :label="item.viewmingcheng">
               <el-switch v-model="item.fieldsvalue" :active-value="1" :inactive-value="0" />
@@ -84,90 +87,90 @@
   </div>
 </template>
 <script>
-import ImagesUpload from '@/components/common/ImagesUpload.vue'
-export default {
-  name: 'Auditdetail',
-  components: {
-    ImagesUpload
-  },
-  props: {
-    show: {
-      type: Boolean,
-      default: false
-    },
-    opentype: {
-      type: String,
-      default: 'add'
+  import ImagesUpload from '@/components/common/ImagesUpload.vue'
+  export default {
+    name: 'Auditdetail',
+    components: {
+      ImagesUpload
     },
-    size: {
-      type: String,
-      default: 'small'
-    },
-    info: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      dialogtitle: '',
-      form: {
-        title: '',
-        username: '',
-        sex: 1,
-        touxiang: '',
-        role_id: '',
-        remark: '',
-        status: 1,
-        create_time: ''
+    props: {
+      show: {
+        type: Boolean,
+        default: false
       },
-      areaoptions: [],
-      loading: false,
-      rules: {}
-    }
-  },
-  watch: {
-    show(val) {
-      if (val) {
-        this.$api.post('/Area/getpcTree').then(res => {
-          this.areaoptions = res.data
-        })
+      opentype: {
+        type: String,
+        default: 'add'
+      },
+      size: {
+        type: String,
+        default: 'small'
+      },
+      info: {
+        type: Object
       }
-    }
-  },
-  methods: {
-    open() {
-      if (this.opentype == 'update') {
-        this.dialogtitle = '修改'
-      } else {
-        this.dialogtitle = '添加'
+    },
+    data() {
+      return {
+        dialogtitle: '',
+        form: {
+          title: '',
+          username: '',
+          sex: 1,
+          touxiang: '',
+          role_id: '',
+          remark: '',
+          status: 1,
+          create_time: ''
+        },
+        areaoptions: [],
+        loading: false,
+        rules: {}
       }
-      this.form = this.info
     },
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.form.path = this.$route.path
-          this.$api.post('/diyfields/audit', this.form).then(res => {
-            this.$message({
-              message: res.msg,
-              type: 'success'
-            })
-            this.$emit('refesh_list')
-            this.closeForm()
-          }).catch(() => {
-            this.loading = false
+    watch: {
+      show(val) {
+        if (val) {
+          this.$api.post('/Area/getpcTree').then(res => {
+            this.areaoptions = res.data
           })
         }
-      })
+      }
     },
-    closeForm() {
-      this.$emit('update:show', false)
-      this.loading = false
-      if (this.$refs['form'] !== undefined) {
-        this.$refs['form'].resetFields()
+    methods: {
+      open() {
+        if (this.opentype == 'update') {
+          this.dialogtitle = '修改'
+        } else {
+          this.dialogtitle = '添加'
+        }
+        this.form = this.info
+      },
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true
+            this.form.path = this.$route.path;
+            this.$api.post('/diyfields/audit', this.form).then(res => {
+              this.$message({
+                message: res.msg,
+                type: 'success'
+              })
+              this.$emit('refesh_list')
+              this.closeForm()
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      closeForm() {
+        this.$emit('update:show', false)
+        this.loading = false
+        if (this.$refs['form'] !== undefined) {
+          this.$refs['form'].resetFields()
+        }
       }
     }
   }
-}
 </script>

+ 90 - 113
src/views/diyfields/update.vue

@@ -1,43 +1,21 @@
 <template>
   <div>
-    <el-dialog
-      :title="dialogtitle"
-      width="1000px"
-      class="icon-dialog"
-      :visible.sync="show"
-      :before-close="closeForm"
-      append-to-body
-      @open="open"
-    >
-      <el-form
-        ref="form"
-        :size="size"
-        :model="form"
-        :rules="rules"
-        :label-width="$store.getters.device !== 'mobile' ? '18%' : '90px'"
-      >
+    <el-dialog :title="dialogtitle" width="1000px" class="icon-dialog" :visible.sync="show" :before-close="closeForm"
+      append-to-body @open="open">
+      <el-form ref="form" :size="size" :model="form" :rules="rules"
+        :label-width="$store.getters.device !== 'mobile' ? '18%' : '90px'">
         <el-row v-for="(item, index) in form.fields" :key="index">
           <el-col v-if="item.inputtype === 'text'" :span="24">
             <el-form-item :label="item.viewmingcheng">
-              <el-input
-                v-model="item.fieldsvalue"
-                auto-complete="off"
-                clearable
+              <el-input v-model="item.fieldsvalue" auto-complete="off" clearable
                 :placeholder="'请输入' + item.viewmingcheng"
-                :disabled="(item.fieldsmingcheng == 'username' && !!form.id)"
-              />
+                :disabled="(item.fieldsmingcheng == 'username' && !!form.id)" />
             </el-form-item>
           </el-col>
           <el-col v-if="item.inputtype === 'textarea'" :span="24">
             <el-form-item :label="item.viewmingcheng">
-              <el-input
-                v-model="item.fieldsvalue"
-                type="textarea"
-                auto-complete="off"
-                :autosize="{ minRows: 2, maxRows: 18 }"
-                clearable
-                :placeholder="'请输入' + item.viewmingcheng"
-              />
+              <el-input v-model="item.fieldsvalue" type="textarea" auto-complete="off"
+                :autosize="{ minRows: 2, maxRows: 18 }" clearable :placeholder="'请输入' + item.viewmingcheng" />
             </el-form-item>
           </el-col>
           <el-col v-if="item.inputtype === 'pic'" :span="24">
@@ -58,12 +36,8 @@
           </el-col>
           <el-col v-if="item.inputtype === 'lbs'" :span="24">
             <el-form-item :label="item.viewmingcheng">
-              <el-cascader
-                v-model="item.fieldsvalue"
-                expand-trigger="hover"
-                :change-on-select="true"
-                :options="areaoptions"
-              />
+              <el-cascader v-model="item.fieldsvalue" expand-trigger="hover" :change-on-select="true"
+                :options="areaoptions" />
             </el-form-item>
           </el-col>
           <el-col v-if="item.inputtype === 'select'" :span="24">
@@ -76,7 +50,8 @@
           <el-col v-if="item.inputtype === 'radio'" :span="24">
             <el-form-item :label="item.viewmingcheng">
               <el-radio-group v-model="item.fieldsvalue">
-                <el-radio v-for="(item, i) in item.selectvaluearray" :key="i" :label="item.val">{{ item.key }}</el-radio>
+                <el-radio v-for="(item, i) in item.selectvaluearray" :key="i"
+                  :label="item.val">{{ item.key }}</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
@@ -112,90 +87,92 @@
   </div>
 </template>
 <script>
-import ImagesUpload from '@/components/common/ImagesUpload.vue'
-export default {
-  name: 'Diyfieldsupdate',
-  components: {
-    ImagesUpload
-  },
-  props: {
-    show: {
-      type: Boolean,
-      default: false
-    },
-    opentype: {
-      type: String,
-      default: 'add'
-    },
-    size: {
-      type: String,
-      default: 'small'
+  import ImagesUpload from '@/components/common/ImagesUpload.vue'
+  export default {
+    name: 'Diyfieldsupdate',
+    components: {
+      ImagesUpload
     },
-    info: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      dialogtitle: '',
-      form: {
-        title: '',
-        username: '',
-        sex: 1,
-        touxiang: '',
-        role_id: '',
-        remark: '',
-        status: 1,
-        create_time: ''
+    props: {
+      show: {
+        type: Boolean,
+        default: false
       },
-      areaoptions: [],
-      loading: false,
-      rules: {}
-    }
-  },
-  watch: {
-    show(val) {
-      if (val) {
-        this.$api.post('/Area/getpcTree').then(res => {
-          this.areaoptions = res.data
-        })
+      opentype: {
+        type: String,
+        default: 'add'
+      },
+      size: {
+        type: String,
+        default: 'small'
+      },
+      info: {
+        type: Object
       }
-    }
-  },
-  methods: {
-    open() {
-      if (this.opentype == 'update') {
-        this.dialogtitle = '修改'
-      } else {
-        this.dialogtitle = '添加'
+    },
+    data() {
+      return {
+        dialogtitle: '',
+        form: {
+          title: '',
+          username: '',
+          sex: 1,
+          touxiang: '',
+          role_id: '',
+          remark: '',
+          status: 1,
+          create_time: ''
+        },
+        areaoptions: [],
+        loading: false,
+        rules: {}
       }
-      this.form = this.info
     },
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.form.path = this.$route.path
-          this.$api.post('/diyfields/update', this.form).then(res => {
-            this.$message({
-              message: res.msg,
-              type: 'success'
-            })
-            this.$emit('refesh_list')
-            this.closeForm()
-          }).catch(() => {
-            this.loading = false
+    watch: {
+      show(val) {
+        if (val) {
+          this.$api.post('/Area/getpcTree').then(res => {
+            this.areaoptions = res.data
           })
         }
-      })
+      }
     },
-    closeForm() {
-      this.$emit('update:show', false)
-      this.loading = false
-      if (this.$refs['form'] !== undefined) {
-        this.$refs['form'].resetFields()
+    methods: {
+      open() {
+        if (this.opentype == 'update') {
+          this.dialogtitle = '修改'
+        } else {
+          this.dialogtitle = '添加'
+        }
+        this.form = this.info
+      },
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true
+            if(!this.form.path){
+              this.form.path = this.$route.path
+            }
+            this.$api.post('/diyfields/update', this.form).then(res => {
+              this.$message({
+                message: res.msg,
+                type: 'success'
+              })
+              this.$emit('refesh_list')
+              this.closeForm()
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      closeForm() {
+        this.$emit('update:show', false)
+        this.loading = false
+        if (this.$refs['form'] !== undefined) {
+          this.$refs['form'].resetFields()
+        }
       }
     }
   }
-}
-</script>
+</script>

+ 70 - 82
src/views/diypage/add.vue

@@ -1,21 +1,9 @@
 <template>
   <div>
-    <el-dialog
-      :title="dialogtitle"
-      width="800px"
-      class="icon-dialog"
-      :visible.sync="show"
-      :before-close="closeForm"
-      append-to-body
-      @open="open"
-    >
-      <el-form
-        ref="form"
-        :size="size"
-        :model="form"
-        :rules="rules"
-        :label-width="$store.getters.device !== 'mobile'?'16%':'90px'"
-      >
+    <el-dialog :title="dialogtitle" width="800px" class="icon-dialog" :visible.sync="show" :before-close="closeForm"
+      append-to-body @open="open">
+      <el-form ref="form" :size="size" :model="form" :rules="rules"
+        :label-width="$store.getters.device !== 'mobile'?'16%':'90px'">
         <el-row>
           <el-col :span="24">
             <el-form-item label="页面名称" prop="title">
@@ -49,79 +37,79 @@
   </div>
 </template>
 <script>
-export default {
-  name: 'Diypageadd',
-  components: {},
-  props: {
-    show: {
-      type: Boolean,
-      default: false
-    },
-    opentype: {
-      type: String,
-      default: 'add'
-    },
-    size: {
-      type: String,
-      default: 'small'
-    },
-    info: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      dialogtitle: '',
-      form: {
-        title: '',
-        status: 1
+  export default {
+    name: 'diypageadd',
+    components: {},
+    props: {
+      show: {
+        type: Boolean,
+        default: false
       },
-      loading: false,
-      rules: {
-        title: [{
-          required: true,
-          message: '请输入名称',
-          trigger: 'blur'
-        }]
+      opentype: {
+        type: String,
+        default: 'add'
+      },
+      size: {
+        type: String,
+        default: 'small'
+      },
+      info: {
+        type: Object
       }
-    }
-  },
-  watch: {
-    show(val) {
-    }
-  },
-  methods: {
-    open() {
-      this.dialogtitle = '添加'
-      this.form = {
-        title: '',
-        status: 1
+    },
+    data() {
+      return {
+        dialogtitle: '',
+        form: {
+            title: '',
+            status: 1
+          },
+        loading: false,
+        rules: {
+          title: [{
+            required: true,
+            message: '请输入名称',
+            trigger: 'blur'
+          }]
+        }
+      }
+    },
+    watch: {
+      show(val) {
       }
     },
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.$api.post('/diypage/update', this.form).then(res => {
-            this.$message({
-              message: res.msg,
-              type: 'success'
+    methods: {
+      open() {
+        this.dialogtitle = '添加'
+        this.form = {
+          title: '',
+          status: 1
+        };
+      },
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true
+            this.$api.post('/diypage/update', this.form).then(res => {
+              this.$message({
+                message: res.msg,
+                type: 'success'
+              })
+              this.$emit('refesh_list')
+              this.closeForm()
+            }).catch(() => {
+              this.loading = false
             })
-            this.$emit('refesh_list')
-            this.closeForm()
-          }).catch(() => {
-            this.loading = false
-          })
+          }
+        })
+      },
+      closeForm() {
+        this.$emit('update:show', false)
+        this.loading = false
+        if (this.$refs['form'] !== undefined) {
+          this.$refs['form'].resetFields()
         }
-      })
-    },
-    closeForm() {
-      this.$emit('update:show', false)
-      this.loading = false
-      if (this.$refs['form'] !== undefined) {
-        this.$refs['form'].resetFields()
       }
     }
   }
-}
 </script>

+ 4 - 4
src/views/diypage/attr/base.vue

@@ -29,7 +29,7 @@
             <div class="label">背景颜色:</div>
             <div class="input f">
               <el-tooltip effect="dark" content="颜色" placement="top">
-                <el-color-picker v-model="base.bc" :predefine="predefineColors" size="small" show-alpha />
+                <el-color-picker v-model="base.bc" :predefine="predefineColors" size="small" show-alpha></el-color-picker>
               </el-tooltip>
             </div>
           </div>
@@ -65,7 +65,7 @@
 </template>
 
 <script>
-import predefineColors from '@/utils/predefineColors.js'
+  import predefineColors from '@/utils/predefineColors.js'
 export default {
   name: 'AttrBase',
   props: {
@@ -81,12 +81,12 @@ export default {
   },
   data() {
     return {
-      predefineColors: []
+      predefineColors: [],
     }
   },
 
   mounted() {
-    this.predefineColors = predefineColors.predefineColors
+    this.predefineColors = predefineColors.predefineColors;
   },
 
   methods: {

+ 3 - 3
src/views/diypage/attr/duo.vue

@@ -122,8 +122,8 @@
             <div class="label mg">文字颜色:</div>
             <div class="input">
               <el-tooltip effect="dark" content="颜色" placement="top">
-                <el-color-picker v-model="attr.base.fc" :predefine="predefineColors" size="small" show-alpha />
-              </el-tooltip>
+                <el-color-picker v-model="attr.base.fc" :predefine="predefineColors" size="small" show-alpha></el-color-picker>
+                </el-tooltip>
             </div>
           </div>
           <div class="item">
@@ -166,7 +166,7 @@ export default {
     }
   },
   mounted() {
-    this.predefineColors = predefineColors.predefineColors
+    this.predefineColors = predefineColors.predefineColors;
   },
 
   methods: {

+ 95 - 174
src/views/diypage/attr/goods.vue

@@ -14,21 +14,13 @@
             <div class="input">
               <div class="input-line">
                 <label class="sp1">
-                  <input
-                    class="radio"
-                    :checked="attr.base.source=='choice'"
-                    type="radio"
-                    @click="attr.base.source='choice'"
-                  >
+                  <input class="radio" :checked="attr.base.source=='choice'" type="radio"
+                    @click="attr.base.source='choice'">
                   手动选择
                 </label>
                 <label class="sp1">
-                  <input
-                    class="radio"
-                    :checked="attr.base.source=='auto'"
-                    type="radio"
-                    @click="attr.base.source='auto'"
-                  >
+                  <input class="radio" :checked="attr.base.source=='auto'" type="radio"
+                    @click="attr.base.source='auto'">
                   自动选择
                 </label>
               </div>
@@ -40,30 +32,18 @@
               <div class="input">
                 <div class="input-line">
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.auto.ptype==0"
-                      type="radio"
-                      @click="attr.base.auto.ptype=0"
-                    >
+                    <input class="radio" :checked="attr.base.auto.ptype==0" type="radio"
+                      @click="attr.base.auto.ptype=0">
                     全部
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.auto.ptype==1"
-                      type="radio"
-                      @click="attr.base.auto.ptype=1"
-                    >
+                    <input class="radio" :checked="attr.base.auto.ptype==1" type="radio"
+                      @click="attr.base.auto.ptype=1">
                     商品
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.auto.ptype==2"
-                      type="radio"
-                      @click="attr.base.auto.ptype=2"
-                    >
+                    <input class="radio" :checked="attr.base.auto.ptype==2" type="radio"
+                      @click="attr.base.auto.ptype=2">
                     服务
                   </label>
                 </div>
@@ -73,27 +53,16 @@
               <div class="label">显示:</div>
               <div class="input">
                 <div class="input-line">
-                  <label class="sp2"><input
-                    type="checkbox"
-                    :checked="attr.base.is_area"
-                    class="checkbox"
-                    @click="attr.base.is_area = attr.base.is_area ? false : true"
-                  >按区域显示</label>
+                  <label class="sp2"><input type="checkbox" :checked="attr.base.is_area" class="checkbox"
+                      @click="attr.base.is_area = attr.base.is_area ? false : true">按区域显示</label>
                 </div>
               </div>
             </div>
             <div class="item c">
               <div class="label">商品分类:</div>
               <div class="input flex">
-                <Treeselect
-                  v-model="attr.base.auto.category"
-                  :default-expand-level="1"
-                  :options="categoryoptions"
-                  :normalizer="normalizer"
-                  :show-count="true"
-                  z-index="999999"
-                  placeholder="请选择商品分类"
-                />
+                <Treeselect v-model="attr.base.auto.category" :default-expand-level="1" :options="categoryoptions"
+                  :normalizer="normalizer" :show-count="true" z-index="999999" placeholder="请选择商品分类" />
               </div>
             </div>
             <div class="item">
@@ -101,30 +70,18 @@
               <div class="input">
                 <div class="input-line">
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.auto.goodsSort=='all'"
-                      type="radio"
-                      @click="attr.base.auto.goodsSort='all'"
-                    >
+                    <input class="radio" :checked="attr.base.auto.goodsSort=='all'" type="radio"
+                      @click="attr.base.auto.goodsSort='all'">
                     综合
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.auto.goodsSort=='sales'"
-                      type="radio"
-                      @click="attr.base.auto.goodsSort='sales'"
-                    >
+                    <input class="radio" :checked="attr.base.auto.goodsSort=='sales'" type="radio"
+                      @click="attr.base.auto.goodsSort='sales'">
                     销量
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.auto.goodsSort=='price'"
-                      type="radio"
-                      @click="attr.base.auto.goodsSort='price'"
-                    >
+                    <input class="radio" :checked="attr.base.auto.goodsSort=='price'" type="radio"
+                      @click="attr.base.auto.goodsSort='price'">
                     价格
                   </label>
                 </div>
@@ -133,14 +90,8 @@
             <div class="item c">
               <div class="label">显示数量:</div>
               <div class="input flex">
-                <input
-                  v-model="attr.base.auto.showNum"
-                  type="number"
-                  placeholder="显示数量"
-                  maxlength="100"
-                  class="intxt"
-                  style="width: 180px;"
-                >
+                <input v-model="attr.base.auto.showNum" type="number" placeholder="显示数量" maxlength="100" class="intxt"
+                  style="width: 180px;">
               </div>
             </div>
           </div>
@@ -152,20 +103,10 @@
                   <span class="el-icon-arrow-down" />
                 </div>
                 <div class="opt">
-                  <el-button
-                    v-if="index != 0"
-                    type="primary"
-                    icon="el-icon-arrow-up"
-                    circle
-                    @click="up(attr.list, index)"
-                  />
-                  <el-button
-                    v-if="index != attr.list.length - 1"
-                    type="primary"
-                    icon="el-icon-arrow-down"
-                    circle
-                    @click="down(attr.list, index)"
-                  />
+                  <el-button v-if="index != 0" type="primary" icon="el-icon-arrow-up" circle
+                    @click="up(attr.list, index)" />
+                  <el-button v-if="index != attr.list.length - 1" type="primary" icon="el-icon-arrow-down" circle
+                    @click="down(attr.list, index)" />
                   <el-button type="danger" icon="el-icon-delete" circle @click="attr.list.splice(index, 1)" />
                 </div>
               </div>
@@ -238,30 +179,18 @@
             <div class="input">
               <div class="input-line">
                 <label class="sp1">
-                  <input
-                    class="radio"
-                    :checked="attr.base.display=='list'"
-                    type="radio"
-                    @click="attr.base.display = 'list'"
-                  >
+                  <input class="radio" :checked="attr.base.display=='list'" type="radio"
+                    @click="attr.base.display = 'list'">
                   平铺
                 </label>
                 <label class="sp1">
-                  <input
-                    class="radio"
-                    :checked="attr.base.display=='slide'"
-                    type="radio"
-                    @click="attr.base.display = 'slide'"
-                  >
+                  <input class="radio" :checked="attr.base.display=='slide'" type="radio"
+                    @click="attr.base.display = 'slide'">
                   横向滑动
                 </label>
                 <label class="sp1">
-                  <input
-                    class="radio"
-                    :checked="attr.base.display=='li'"
-                    type="radio"
-                    @click="attr.base.display = 'li'"
-                  >
+                  <input class="radio" :checked="attr.base.display=='li'" type="radio"
+                    @click="attr.base.display = 'li'">
                   列表
                 </label>
               </div>
@@ -291,12 +220,8 @@
             <div class="label">显示内容:</div>
             <div class="input">
               <div class="input-line">
-                <label class="sp2"><input
-                  type="checkbox"
-                  :checked="attr.base.sjg"
-                  class="checkbox"
-                  @click="attr.base.sjg = attr.base.sjg ? false : true"
-                >商品价格</label>
+                <label class="sp2"><input type="checkbox" :checked="attr.base.sjg" class="checkbox"
+                    @click="attr.base.sjg = attr.base.sjg ? false : true">商品价格</label>
                 <!--<label class="sp2"><input
                   type="checkbox"
                   :checked="attr.base.sgm"
@@ -305,12 +230,8 @@
                 >购买按钮</label>-->
               </div>
               <div class="input-line">
-                <label class="sp2"><input
-                  type="checkbox"
-                  :checked="attr.base.is_binding"
-                  class="checkbox"
-                  @click="attr.base.is_binding = attr.base.is_binding ? false : true"
-                >选择{{ lang.technical }}下单</label>
+                <label class="sp2"><input type="checkbox" :checked="attr.base.is_binding" class="checkbox"
+                    @click="attr.base.is_binding = attr.base.is_binding ? false : true">选择{{lang.technical}}下单</label>
               </div>
             </div>
           </div>
@@ -323,70 +244,70 @@
 </template>
 
 <script>
-import Treeselect from '@riophae/vue-treeselect'
-import '@riophae/vue-treeselect/dist/vue-treeselect.css'
-import AttrText from '@/views/diypage/attr/text.vue'
-import AttrLink from '@/views/diypage/attr/link.vue'
-import AttrBase from '@/views/diypage/attr/base.vue'
-import SelectGoods from '@/views/diypage/attr/selectGoods.vue'
-export default {
-  name: 'AttrGoods',
-  components: {
-    Treeselect,
-    AttrText,
-    AttrLink,
-    AttrBase,
-    SelectGoods
-  },
-  props: ['attr'],
-  data() {
-    return {
-      lang: {},
-      tab: [{
-        name: '基础设置',
-        content: ''
-      }, {
-        name: '样式设置',
-        content: ''
-      }],
-      cur: 0,
-      categoryoptions: [],
-      showSelectGoods: false
-    }
-  },
-  mounted() {
-    this.$api.post('/Lang/getlang').then(res => {
-      this.lang = res.data
-    })
-  },
-  created() {
-    this.$api.post('/Category/getTree').then(res => {
-      this.categoryoptions = res.data
-    })
-  },
-  methods: {
-    // 上移
-    up(arr, index) {
-      arr.splice(index - 1, 0, arr[index])
-      arr.splice(index + 1, 1)
-    },
-    // 下移
-    down(arr, index) {
-      arr.splice(index + 2, 0, arr[index])
-      arr.splice(index, 1)
+  import Treeselect from '@riophae/vue-treeselect'
+  import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+  import AttrText from '@/views/diypage/attr/text.vue'
+  import AttrLink from '@/views/diypage/attr/link.vue'
+  import AttrBase from '@/views/diypage/attr/base.vue'
+  import SelectGoods from '@/views/diypage/attr/selectGoods.vue'
+  export default {
+    name: 'AttrGoods',
+    components: {
+      Treeselect,
+      AttrText,
+      AttrLink,
+      AttrBase,
+      SelectGoods
     },
-    normalizer(data) {
-      if (data.children && !data.children.length) {
-        delete data.children
-      }
+    props: ['attr'],
+    data() {
       return {
-        id: data.val,
-        label: data.key,
-        children: data.children
+        lang: {},
+        tab: [{
+          name: '基础设置',
+          content: ''
+        }, {
+          name: '样式设置',
+          content: ''
+        }],
+        cur: 0,
+        categoryoptions: [],
+        showSelectGoods: false
+      }
+    },
+    mounted() {
+      this.$api.post('/Lang/getlang').then(res => {
+        this.lang = res.data
+      })
+    },
+    created() {
+      this.$api.post('/Category/getTree').then(res => {
+        this.categoryoptions = res.data
+      })
+    },
+    methods: {
+      // 上移
+      up(arr, index) {
+        arr.splice(index - 1, 0, arr[index])
+        arr.splice(index + 1, 1)
+      },
+      // 下移
+      down(arr, index) {
+        arr.splice(index + 2, 0, arr[index])
+        arr.splice(index, 1)
+      },
+      normalizer(data) {
+        if (data.children && !data.children.length) {
+          delete data.children
+        }
+        return {
+          id: data.val,
+          label: data.key,
+          children: data.children
+        }
       }
     }
   }
-}
 </script>
 
 <style></style>

+ 2 - 6
src/views/diypage/attr/miaosha.vue

@@ -73,12 +73,8 @@
               <div class="label">显示:</div>
               <div class="input">
                 <div class="input-line">
-                  <label class="sp2"><input
-                    type="checkbox"
-                    :checked="attr.base.is_area"
-                    class="checkbox"
-                    @click="attr.base.is_area = attr.base.is_area ? false : true"
-                  >按区域显示</label>
+                  <label class="sp2"><input type="checkbox" :checked="attr.base.is_area" class="checkbox"
+                      @click="attr.base.is_area = attr.base.is_area ? false : true">按区域显示</label>
                 </div>
               </div>
             </div>

+ 55 - 81
src/views/diypage/attr/nav.vue

@@ -14,20 +14,10 @@
               <span class="el-icon-arrow-down" />
             </div>
             <div class="opt">
-              <el-button
-                v-if="index != 0"
-                type="primary"
-                icon="el-icon-arrow-up"
-                circle
-                @click="up(attr.list, index)"
-              />
-              <el-button
-                v-if="index != attr.list.length - 1"
-                type="primary"
-                icon="el-icon-arrow-down"
-                circle
-                @click="down(attr.list, index)"
-              />
+              <el-button v-if="index != 0" type="primary" icon="el-icon-arrow-up" circle
+                @click="up(attr.list, index)" />
+              <el-button v-if="index != attr.list.length - 1" type="primary" icon="el-icon-arrow-down" circle
+                @click="down(attr.list, index)" />
               <el-button type="danger" icon="el-icon-delete" circle @click="attr.list.splice(index, 1)" />
             </div>
           </div>
@@ -54,12 +44,8 @@
             <div class="label mg">文字颜色:</div>
             <div class="input">
               <el-tooltip effect="dark" content="颜色" placement="top">
-                <el-color-picker
-                  v-model="attr.base.fc"
-                  :predefine="predefineColors"
-                  size="small"
-                  show-alpha
-                />
+                <el-color-picker v-model="attr.base.fc" :predefine="predefineColors" size="small"
+                  show-alpha></el-color-picker>
               </el-tooltip>
             </div>
           </div>
@@ -68,25 +54,13 @@
             <div class="input">
               <div class="input-line">
                 <label class="sp1">
-                  <input
-                    class="radio"
-                    :name="attr.base.column"
-                    :checked="attr.base.column == 4"
-                    value="4"
-                    type="radio"
-                    @click="attr.base.column = 4"
-                  >
+                  <input class="radio" :name="attr.base.column" :checked="attr.base.column == 4" value="4" type="radio"
+                    @click="attr.base.column = 4">
                   4列
                 </label>
                 <label class="sp1">
-                  <input
-                    class="radio"
-                    :name="attr.base.column"
-                    :checked="attr.base.column == 5"
-                    value="5"
-                    type="radio"
-                    @click="attr.base.column = 5"
-                  >
+                  <input class="radio" :name="attr.base.column" :checked="attr.base.column == 5" value="5" type="radio"
+                    @click="attr.base.column = 5">
                   5列
                 </label>
               </div>
@@ -131,54 +105,54 @@
 </template>
 
 <script>
-import AttrText from '@/views/diypage/attr/text.vue'
-import AttrIcon from '@/views/diypage/attr/icon.vue'
-import AttrLink from '@/views/diypage/attr/link.vue'
-import AttrBase from '@/views/diypage/attr/base.vue'
-import module from '@/utils/module.js'
-import predefineColors from '@/utils/predefineColors.js'
-export default {
-  name: 'AttrNav',
-  components: {
-    AttrText,
-    AttrIcon,
-    AttrLink,
-    AttrBase
-  },
-  props: ['attr'],
-  data() {
-    return {
-      tab: [{
-        name: '基础设置',
-        content: ''
-      }, {
-        name: '样式设置',
-        content: ''
-      }],
-      predefineColors: [],
-      cur: 0
-    }
-  },
-  mounted() {
-    this.predefineColors = predefineColors.predefineColors
-  },
-  methods: {
-    // 添加导航
-    addNavList() {
-      this.$util.addItem(this.attr.list, module.moduleNav[0])
+  import AttrText from '@/views/diypage/attr/text.vue'
+  import AttrIcon from '@/views/diypage/attr/icon.vue'
+  import AttrLink from '@/views/diypage/attr/link.vue'
+  import AttrBase from '@/views/diypage/attr/base.vue'
+  import module from '@/utils/module.js'
+  import predefineColors from '@/utils/predefineColors.js'
+  export default {
+    name: 'AttrNav',
+    components: {
+      AttrText,
+      AttrIcon,
+      AttrLink,
+      AttrBase
+    },
+    props: ['attr'],
+    data() {
+      return {
+        tab: [{
+          name: '基础设置',
+          content: ''
+        }, {
+          name: '样式设置',
+          content: ''
+        }],
+        predefineColors: [],
+        cur: 0
+      }
     },
-    // 上移
-    up(arr, index) {
-      arr.splice(index - 1, 0, arr[index])
-      arr.splice(index + 1, 1)
+    mounted() {
+      this.predefineColors = predefineColors.predefineColors;
     },
-    // 下移
-    down(arr, index) {
-      arr.splice(index + 2, 0, arr[index])
-      arr.splice(index, 1)
+    methods: {
+      // 添加导航
+      addNavList() {
+        this.$util.addItem(this.attr.list, module.moduleNav[0])
+      },
+      // 上移
+      up(arr, index) {
+        arr.splice(index - 1, 0, arr[index])
+        arr.splice(index + 1, 1)
+      },
+      // 下移
+      down(arr, index) {
+        arr.splice(index + 2, 0, arr[index])
+        arr.splice(index, 1)
+      }
     }
   }
-}
 </script>
 
-<style></style>
+<style></style>

+ 44 - 106
src/views/diypage/attr/search.vue

@@ -8,14 +8,8 @@
             <div class="item c">
               <div class="label">提示文字:</div>
               <div class="input flex">
-                <input
-                  v-model="attr.params.placeholder"
-                  type="text"
-                  placeholder="提示文字"
-                  maxlength="100"
-                  class="intxt"
-                  style="width: 220px;"
-                >
+                <input v-model="attr.params.placeholder" type="text" placeholder="提示文字" maxlength="100" class="intxt"
+                  style="width: 220px;">
               </div>
             </div>
 
@@ -24,21 +18,13 @@
               <div class="input">
                 <div class="input-line">
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.is_location == 0"
-                      type="radio"
-                      @click="attr.base.is_location = 0"
-                    >
+                    <input class="radio" :checked="attr.base.is_location == 0" type="radio"
+                      @click="attr.base.is_location = 0">
                     隐藏
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.is_location == 1"
-                      type="radio"
-                      @click="attr.base.is_location = 1"
-                    >
+                    <input class="radio" :checked="attr.base.is_location == 1" type="radio"
+                      @click="attr.base.is_location = 1">
                     显示
                   </label>
                 </div>
@@ -50,21 +36,13 @@
               <div class="input">
                 <div class="input-line">
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.is_hotkey == 0"
-                      type="radio"
-                      @click="attr.base.is_hotkey = 0"
-                    >
+                    <input class="radio" :checked="attr.base.is_hotkey == 0" type="radio"
+                      @click="attr.base.is_hotkey = 0">
                     隐藏
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :checked="attr.base.is_hotkey == 1"
-                      type="radio"
-                      @click="attr.base.is_hotkey = 1"
-                    >
+                    <input class="radio" :checked="attr.base.is_hotkey == 1" type="radio"
+                      @click="attr.base.is_hotkey = 1">
                     显示
                   </label>
                 </div>
@@ -74,26 +52,16 @@
               <div class="item c">
                 <div class="label">热搜关键词:</div>
                 <div class="input flex">
-                  <input
-                    v-model="attr.params.hotkey"
-                    type="text"
-                    placeholder="热搜"
-                    maxlength="100"
-                    class="intxt"
-                    style="width: 220px;"
-                  >
+                  <input v-model="attr.params.hotkey" type="text" placeholder="热搜" maxlength="100" class="intxt"
+                    style="width: 220px;">
                 </div>
               </div>
               <div class="item c">
                 <div class="label">热搜文字色:</div>
                 <div class="input f">
                   <el-tooltip effect="dark" content="颜色" placement="top">
-                    <el-color-picker
-                      v-model="attr.base.hotkeytxtColor"
-                      :predefine="predefineColors"
-                      size="small"
-                      show-alpha
-                    />
+                    <el-color-picker v-model="attr.base.hotkeytxtColor" :predefine="predefineColors" size="small"
+                      show-alpha></el-color-picker>
                   </el-tooltip>
                 </div>
               </div>
@@ -103,33 +71,18 @@
               <div class="input">
                 <div class="input-line">
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :name="attr.base.searchStyle"
-                      :checked="attr.base.searchStyle == ''"
-                      type="radio"
-                      @click="attr.base.searchStyle = ''"
-                    >
+                    <input class="radio" :name="attr.base.searchStyle" :checked="attr.base.searchStyle == ''"
+                      type="radio" @click="attr.base.searchStyle = ''">
                     方形
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :name="attr.base.searchStyle"
-                      :checked="attr.base.searchStyle == 'radius'"
-                      type="radio"
-                      @click="attr.base.searchStyle = 'radius'"
-                    >
+                    <input class="radio" :name="attr.base.searchStyle" :checked="attr.base.searchStyle == 'radius'"
+                      type="radio" @click="attr.base.searchStyle = 'radius'">
                     圆角
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :name="attr.base.searchStyle"
-                      :checked="attr.base.searchStyle == 'round'"
-                      type="radio"
-                      @click="attr.base.searchStyle = 'round'"
-                    >
+                    <input class="radio" :name="attr.base.searchStyle" :checked="attr.base.searchStyle == 'round'"
+                      type="radio" @click="attr.base.searchStyle = 'round'">
                     圆弧
                   </label>
                 </div>
@@ -140,33 +93,18 @@
               <div class="input">
                 <div class="input-line">
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :name="attr.base.textAlign"
-                      :checked="attr.base.textAlign == 'left'"
-                      type="radio"
-                      @click="attr.base.textAlign = 'left'"
-                    >
+                    <input class="radio" :name="attr.base.textAlign" :checked="attr.base.textAlign == 'left'"
+                      type="radio" @click="attr.base.textAlign = 'left'">
                     居左
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :name="attr.base.textAlign"
-                      :checked="attr.base.textAlign == 'center'"
-                      type="radio"
-                      @click="attr.base.textAlign = 'center'"
-                    >
+                    <input class="radio" :name="attr.base.textAlign" :checked="attr.base.textAlign == 'center'"
+                      type="radio" @click="attr.base.textAlign = 'center'">
                     居中
                   </label>
                   <label class="sp1">
-                    <input
-                      class="radio"
-                      :name="attr.base.textAlign"
-                      :checked="attr.base.textAlign == 'right'"
-                      type="radio"
-                      @click="attr.base.textAlign = 'right'"
-                    >
+                    <input class="radio" :name="attr.base.textAlign" :checked="attr.base.textAlign == 'right'"
+                      type="radio" @click="attr.base.textAlign = 'right'">
                     居右
                   </label>
                 </div>
@@ -181,22 +119,22 @@
 </template>
 
 <script>
-import AttrBase from '@/views/diypage/attr/base.vue'
-import predefineColors from '@/utils/predefineColors.js'
-export default {
-  name: 'AttrSearch',
-  components: {
-    AttrBase
-  },
-  props: ['attr'],
-  data() {
-    return {
-      predefineColors: []
-    }
-  },
-  mounted() {
-    this.predefineColors = predefineColors.predefineColors
-  },
-  methods: {}
-}
+  import AttrBase from '@/views/diypage/attr/base.vue'
+  import predefineColors from '@/utils/predefineColors.js'
+  export default {
+    name: 'AttrSearch',
+    components: {
+      AttrBase
+    },
+    props: ['attr'],
+    data() {
+      return {
+        predefineColors: [],
+      }
+    },
+    mounted() {
+      this.predefineColors = predefineColors.predefineColors;
+    },
+    methods: {}
+  }
 </script>

+ 1 - 1
src/views/diypage/attr/selectGoods.vue

@@ -122,7 +122,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     handleClick(tab, event) {

+ 1 - 1
src/views/diypage/attr/selectMiaosha.vue

@@ -135,7 +135,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 3 - 3
src/views/diypage/attr/selectTechnical.vue

@@ -119,7 +119,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {
@@ -163,7 +163,7 @@ export default {
         if (flag) {
           this.$parent.attr.list.push(technical)
         } else {
-          this.$message.error('不能选择重复' + this.lang.technical)
+          this.$message.error('不能选择重复'+this.lang.technical)
           return false
         }
       }
@@ -176,7 +176,7 @@ export default {
         if (flag) {
           this.$parent.module.list.push(technical)
         } else {
-          this.$message.error('不能选择重复' + this.lang.technical)
+          this.$message.error('不能选择重复'+this.lang.technical)
           return false
         }
       }

+ 1 - 1
src/views/diypage/attr/selectTuan.vue

@@ -135,7 +135,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 5 - 5
src/views/diypage/attr/siteLink.vue

@@ -193,7 +193,7 @@ export default {
       })
     },
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {
@@ -208,10 +208,10 @@ export default {
 
       this.$api.post('/diypagelink/index', param).then(res => {
         this.list = res.data.data
-        if (res.data.total) {
-          this.page_data.total = res.data.total
-        } else {
-          this.page_data.total = 0
+        if(res.data.total){
+          this.page_data.total = res.data.total;
+        }else{
+          this.page_data.total = 0;
         }
         this.loading = false
         if (this.page_data.page == 1) {

+ 3 - 7
src/views/diypage/attr/technical.vue

@@ -53,12 +53,8 @@
               <div class="label">显示:</div>
               <div class="input">
                 <div class="input-line">
-                  <label class="sp2"><input
-                    type="checkbox"
-                    :checked="attr.base.is_area"
-                    class="checkbox"
-                    @click="attr.base.is_area = attr.base.is_area ? false : true"
-                  >按区域显示</label>
+                  <label class="sp2"><input type="checkbox" :checked="attr.base.is_area" class="checkbox"
+                      @click="attr.base.is_area = attr.base.is_area ? false : true">按区域显示</label>
                 </div>
               </div>
             </div>
@@ -115,7 +111,7 @@
             <div v-for="(item, index) in attr.list" :key="index" class="attr-nav-item">
               <div class="ht">
                 <div class="t" :class="item.open ? 'on' : ''" @click="item.open = item.open ? false : true">
-                  {{ lang.technical }}{{ index + 1 }}
+                  {{lang.technical}}{{ index + 1 }}
                   <span class="el-icon-arrow-down" />
                 </div>
                 <div class="opt">

+ 77 - 97
src/views/diypage/attr/text.vue

@@ -15,12 +15,8 @@
           <div class="input-line">
             <input v-model="text.txt" type="text" :placeholder="text.prompt" maxlength="100" class="intxt">
             <label class="sp1">
-              <input
-                type="checkbox"
-                :checked="!text.show"
-                class="checkbox"
-                @click="text.show = text.show ? false : true"
-              >隐藏
+              <input type="checkbox" :checked="!text.show" class="checkbox"
+                @click="text.show = text.show ? false : true">隐藏
             </label>
           </div>
         </template>
@@ -31,19 +27,11 @@
       <div class="input">
         <div class="input-line">
           <label class="sp1">
-            <input
-              class="radio"
-              :checked="text.defaultstyle==false"
-              type="radio"
-              @click="text.defaultstyle=false"
-            >默认</label>
+            <input class="radio" :checked="text.defaultstyle==false" type="radio"
+              @click="text.defaultstyle=false">默认</label>
           <label class="sp1">
-            <input
-              class="radio"
-              :checked="text.defaultstyle==true"
-              type="radio"
-              @click="text.defaultstyle=true"
-            >自定义</label>
+            <input class="radio" :checked="text.defaultstyle==true" type="radio"
+              @click="text.defaultstyle=true">自定义</label>
         </div>
         <template v-if="text.defaultstyle">
           <div class="input-line">
@@ -58,28 +46,20 @@
             <div class="label">字体设置:</div>
             <div class="input f">
               <el-tooltip effect="dark" content="颜色" placement="top">
-                <el-color-picker
-                  v-model="text.color"
-                  :predefine="predefineColors"
-                  size="small"
-                  show-alpha
-                />
+                <el-color-picker v-model="text.color" :predefine="predefineColors" size="small"
+                  show-alpha></el-color-picker>
               </el-tooltip>
               <el-tooltip effect="dark" content="加粗" placement="top">
                 <div class="font" :class="text.bold ? 'on' : ''" @click="text.bold = text.bold ? false : true"><span
-                  class="iconfont icon-B"
-                /></div>
+                    class="iconfont icon-B" /></div>
               </el-tooltip>
               <el-tooltip effect="dark" content="斜体" placement="top">
                 <div class="font" :class="text.italics ? 'on' : ''" @click="text.italics = text.italics ? false : true">
                   <span class="iconfont icon-xieti" /></div>
               </el-tooltip>
               <el-tooltip effect="dark" content="下划线" placement="top">
-                <div
-                  class="font"
-                  :class="text.underline ? 'on' : ''"
-                  @click="text.underline = text.underline ? false : true"
-                ><span class="iconfont icon-xiahuaxian1" />
+                <div class="font" :class="text.underline ? 'on' : ''"
+                  @click="text.underline = text.underline ? false : true"><span class="iconfont icon-xiahuaxian1" />
                 </div>
               </el-tooltip>
             </div>
@@ -91,73 +71,73 @@
 </template>
 
 <script>
-import predefineColors from '@/utils/predefineColors.js'
-export default {
-  name: 'AttrText',
-  props: {
-    text: {
-      type: Object
-    },
-    edit: {
-      default: true
-    },
-    ispagetitle: {
-      default: false
-    } // 是否标题
-  },
-  data() {
-    return {
-      predefineColors: [],
-      fontSizeList: [{
-        label: '12px',
-        value: 12
-      },
-      {
-        label: '14px',
-        value: 14
-      },
-      {
-        label: '16px',
-        value: 15
-      },
-      {
-        label: '18px',
-        value: 18
-      },
-      {
-        label: '20px',
-        value: 20
-      },
-      {
-        label: '22px',
-        value: 22
+  import predefineColors from '@/utils/predefineColors.js'
+  export default {
+    name: 'AttrText',
+    props: {
+      text: {
+        type: Object
       },
-      {
-        label: '24px',
-        value: 24
+      edit: {
+        default: true
       },
-      {
-        label: '30px',
-        value: 30
+      ispagetitle: {
+        default: false
+      } // 是否标题
+    },
+    data() {
+      return {
+        predefineColors: [],
+        fontSizeList: [{
+            label: '12px',
+            value: 12
+          },
+          {
+            label: '14px',
+            value: 14
+          },
+          {
+            label: '16px',
+            value: 15
+          },
+          {
+            label: '18px',
+            value: 18
+          },
+          {
+            label: '20px',
+            value: 20
+          },
+          {
+            label: '22px',
+            value: 22
+          },
+          {
+            label: '24px',
+            value: 24
+          },
+          {
+            label: '30px',
+            value: 30
+          }
+        ]
       }
-      ]
-    }
-  },
-  watch: {
-    text: {
-      handler: function(newv, oldv) {
-        // 如果更改的是页面标题执行
-        if (this.ispagetitle) {
-          this.$parent.$parent.$parent.name = newv.txt
-          const pageindex = this.$parent.$parent.$parent.pageIndex
-          this.$parent.$parent.$parent.pageList[pageindex].name = newv.txt
-        }
-      },
-      deep: true
-    }
-  },
-  mounted() {
-    this.predefineColors = predefineColors.predefineColors
+    },
+    watch: {
+      text: {
+        handler: function(newv, oldv) {
+          // 如果更改的是页面标题执行
+          if (this.ispagetitle) {
+            this.$parent.$parent.$parent.name = newv.txt
+            const pageindex = this.$parent.$parent.$parent.pageIndex
+            this.$parent.$parent.$parent.pageList[pageindex].name = newv.txt
+          }
+        },
+        deep: true
+      }
+    },
+    mounted() {
+      this.predefineColors = predefineColors.predefineColors;
+    },
   }
-}
-</script>
+</script>

+ 2 - 6
src/views/diypage/attr/tuan.vue

@@ -73,12 +73,8 @@
               <div class="label">显示:</div>
               <div class="input">
                 <div class="input-line">
-                  <label class="sp2"><input
-                    type="checkbox"
-                    :checked="attr.base.is_area"
-                    class="checkbox"
-                    @click="attr.base.is_area = attr.base.is_area ? false : true"
-                  >按区域显示</label>
+                  <label class="sp2"><input type="checkbox" :checked="attr.base.is_area" class="checkbox"
+                      @click="attr.base.is_area = attr.base.is_area ? false : true">按区域显示</label>
                 </div>
               </div>
             </div>

+ 53 - 66
src/views/diypage/attr/window.vue

@@ -14,20 +14,10 @@
               <span class="el-icon-arrow-down" />
             </div>
             <div class="opt">
-              <el-button
-                v-if="index != 0"
-                type="primary"
-                icon="el-icon-arrow-up"
-                circle
-                @click="up(attr.list, index)"
-              />
-              <el-button
-                v-if="index != attr.list.length - 1"
-                type="primary"
-                icon="el-icon-arrow-down"
-                circle
-                @click="down(attr.list, index)"
-              />
+              <el-button v-if="index != 0" type="primary" icon="el-icon-arrow-up" circle
+                @click="up(attr.list, index)" />
+              <el-button v-if="index != attr.list.length - 1" type="primary" icon="el-icon-arrow-down" circle
+                @click="down(attr.list, index)" />
               <el-button type="danger" icon="el-icon-delete" circle @click="attr.list.splice(index, 1)" />
             </div>
           </div>
@@ -38,13 +28,9 @@
                 <div class="label">模块:</div>
                 <div class="input">
                   <div class="input-line">
-                    <el-select v-model="item.type" placeholder="请选择模块" @change="typeChange(item.type,index)">
-                      <el-option
-                        v-for="(seitem, index2) in item.selectli"
-                        :key="index2"
-                        :label="seitem.label"
-                        :value="seitem.value"
-                      />
+                    <el-select v-model="item.type" @change="typeChange(item.type,index)" placeholder="请选择模块">
+                      <el-option v-for="(seitem, index2) in item.selectli" :key="index2" :label="seitem.label"
+                        :value="seitem.value" />
                     </el-select>
                   </div>
                 </div>
@@ -112,55 +98,56 @@
 </template>
 
 <script>
-import AttrImg from '@/views/diypage/attr/img.vue'
-import AttrLink from '@/views/diypage/attr/link.vue'
-import AttrBase from '@/views/diypage/attr/base.vue'
-import module from '@/utils/module.js'
-export default {
-  name: 'AttrWindow',
-  components: {
-    AttrImg,
-    AttrLink,
-    AttrBase
-  },
-  props: ['attr'],
-  data() {
-    return {
-      tab: [{
-        name: '基础设置',
-        content: ''
-      }, {
-        name: '样式设置',
-        content: ''
-      }],
-      cur: 0
-    }
-  },
-
-  methods: {
-    // 添加导航
-    addNavList() {
-      this.$util.addItem(this.attr.list, module.moduleBanner[0])
-    },
-    typeChange(val, index) {
-      module.pageData.forEach((item, i2) => {
-        if (item.type == val) {
-          this.attr.list[index].windowbody = item
-        }
-      })
+  import AttrImg from '@/views/diypage/attr/img.vue'
+  import AttrLink from '@/views/diypage/attr/link.vue'
+  import AttrBase from '@/views/diypage/attr/base.vue'
+  import module from '@/utils/module.js'
+  export default {
+    name: 'AttrWindow',
+    components: {
+      AttrImg,
+      AttrLink,
+      AttrBase
     },
-    // 上移
-    up(arr, index) {
-      arr.splice(index - 1, 0, arr[index])
-      arr.splice(index + 1, 1)
+    props: ['attr'],
+    data() {
+      return {
+        tab: [{
+          name: '基础设置',
+          content: ''
+        }, {
+          name: '样式设置',
+          content: ''
+        }],
+        cur: 0
+      }
     },
-    // 下移
-    down(arr, index) {
-      arr.splice(index + 2, 0, arr[index])
-      arr.splice(index, 1)
+
+    methods: {
+      // 添加导航
+      addNavList() {
+        this.$util.addItem(this.attr.list, module.moduleBanner[0])
+      },
+      typeChange(val, index) {
+
+        module.pageData.forEach((item, i2) => {
+          if (item.type == val) {
+            this.attr.list[index].windowbody = item;
+          }
+        })
+      },
+      // 上移
+      up(arr, index) {
+        arr.splice(index - 1, 0, arr[index])
+        arr.splice(index + 1, 1)
+      },
+      // 下移
+      down(arr, index) {
+        arr.splice(index + 2, 0, arr[index])
+        arr.splice(index, 1)
+      }
     }
   }
-}
 </script>
 
 <style></style>

+ 5 - 3
src/views/diypage/common/Attr.vue

@@ -12,9 +12,10 @@
     <AttrTuwen v-if="attr.type == 'tuwen'" :attr="attr" />
     <AttrGoods v-if="attr.type == 'goods'" :attr="attr" />
     <AttrTechnical v-if="attr.type == 'technical'" :attr="attr" />
+    <AttrStore v-if="attr.type == 'store'" :attr="attr" />
     <AttrTuan v-if="attr.type == 'tuan'" :attr="attr" />
     <AttrMiaosha v-if="attr.type == 'miaosha'" :attr="attr" />
-    <AttrMembergoods v-if="attr.type == 'membergoods'" :attr="attr" />
+    <AttrGoodscard v-if="attr.type == 'goodscard'" :attr="attr" />
   </div>
 </template>
 
@@ -32,12 +33,13 @@ import AttrNotice from '@/views/diypage/attr/notice.vue'
 import AttrTuwen from '@/views/diypage/attr/tuwen.vue'
 import AttrGoods from '@/views/diypage/attr/goods.vue'
 import AttrTechnical from '@/views/diypage/attr/technical.vue'
+import AttrStore from '@/views/diypage/attr/store.vue'
 import AttrTuan from '@/views/diypage/attr/tuan.vue'
 import AttrMiaosha from '@/views/diypage/attr/miaosha.vue'
-import AttrMembergoods from '@/views/diypage/attr/membergoods.vue'
+import AttrGoodscard from '@/views/diypage/attr/goodscard.vue'
 export default {
   name: 'Attr',
-  components: { AttrNav, AttrSlide, AttrCoupon, AttrSearch, AttrWindow, AttrDuo, AttrVideo, AttrNotice, AttrImageSingle, AttrTuwen, AttrGoods, AttrTechnical, AttrTuan, AttrMiaosha, AttrMembergoods },
+  components: { AttrNav, AttrSlide, AttrCoupon, AttrSearch, AttrWindow, AttrDuo, AttrVideo, AttrNotice, AttrImageSingle, AttrTuwen, AttrGoods, AttrTechnical,AttrStore,AttrTuan,AttrMiaosha,AttrGoodscard },
   props: ['attr'],
   mounted() {
 

+ 7 - 4
src/views/diypage/common/Module.vue

@@ -26,9 +26,10 @@
         <modlueTuwen v-if="element.type == 'tuwen'" :module="element" />
         <modlueGoods v-if="element.type == 'goods'" :module="element" />
         <modlueTechnical v-if="element.type == 'technical'" :module="element" />
+        <modlueStore v-if="element.type == 'store'" :module="element" />
         <modlueTuan v-if="element.type == 'tuan'" :module="element" />
         <modlueMiaosha v-if="element.type == 'miaosha'" :module="element" />
-        <modlueMembergoods v-if="element.type == 'membergoods'" :module="element" />
+        <modlueGoodscard v-if="element.type == 'goodscard'" :module="element" />
 
       </div>
       <div v-if="placeholder" class="placeholder" :data-index="index + 1">放在这里</div>
@@ -49,9 +50,10 @@ import modlueNotice from '@/views/diypage/module/notice.vue'
 import modlueTuwen from '@/views/diypage/module/tuwen.vue'
 import modlueGoods from '@/views/diypage/module/goods.vue'
 import modlueTechnical from '@/views/diypage/module/technical.vue'
+import modlueStore from '@/views/diypage/module/store.vue'
 import modlueTuan from '@/views/diypage/module/tuan.vue'
 import modlueMiaosha from '@/views/diypage/module/miaosha.vue'
-import modlueMembergoods from '@/views/diypage/module/membergoods.vue'
+import modlueGoodscard from '@/views/diypage/module/goodscard.vue'
 
 export default {
   name: 'Module',
@@ -68,9 +70,10 @@ export default {
     modlueTuwen,
     modlueGoods,
     modlueTechnical,
+    modlueStore,
     modlueTuan,
     modlueMiaosha,
-    modlueMembergoods
+    modlueGoodscard
   },
   props: {
     'modulelist': {
@@ -95,7 +98,7 @@ export default {
       this.$emit('moduleClick', index)
     },
     windowbodyClick(item) {
-      console.log(item)
+      console.log(item);
       this.$emit('windowbodyClick', item)
     },
 

+ 2 - 2
src/views/diypage/diy.vue

@@ -252,7 +252,7 @@ export default {
       this.showOption = false
     },
 
-    // 设置模块
+ // 设置模块
     setmodle() {
       this.moduleClick(this.activeIndex)
     },
@@ -269,7 +269,7 @@ export default {
       this.curAttrData = this.modulelist[this.selectIndex]
     },
     windowbodyClick(item) {
-      console.log(item)
+      console.log(item);
       this.showConAttr = false
       this.curAttrData = item
     },

+ 4 - 4
src/views/diypage/module/contitle.vue

@@ -1,14 +1,14 @@
 <template>
   <div class="appdiy-title" @click.stop="pagebaseClick">
     <moduleBg :base="params.base.titleBackground" />
-    <span class="el-icon-arrow-left" :style="'color:'+params.base.titleTextColor" />
-    <p class="tit"><span :style="'font-size:14px;color:'+params.base.titleTextColor">{{ params.params.title }}</span></p>
+    <span class="el-icon-arrow-left" :style="'color:'+params.base.titleTextColor"></span>
+    <p  class="tit"><span :style="'font-size:14px;color:'+params.base.titleTextColor">{{ params.params.title }}</span></p>
     <img src="@/assets/diy/xcx.png" alt="">
   </div>
 </template>
 
 <script>
-import moduleBg from '@/views/diypage/module/bg.vue'
+  import moduleBg from '@/views/diypage/module/bg.vue'
 export default {
   components: {
     moduleBg
@@ -25,7 +25,7 @@ export default {
   },
   methods: {
     pagebaseClick() {
-      this.$parent.pagebaseClick(this.params.type)
+        this.$parent.pagebaseClick(this.params.type)
     }
   }
 }

+ 21 - 21
src/views/diypage/module/duo.vue

@@ -1,31 +1,31 @@
 <template>
   <div class="module-item-duo" :style="'width:'+ module.base.boxwidth +';'+!module.base.margin ? 'margin-top:0' : ''">
     <div :style="'padding-top:' + module.base.paddingTop + 'px;padding-bottom:' + module.base.paddingBottom + 'px;margin-top:' + module.base.marginTop + 'px;margin-bottom:' + module.base.marginBottom + 'px;'">
-      <div class="item-duo-con" :style="style">
-        <moduleBg :base="module.base" />
-        <moduleTitle v-if="module.title.title.show" :title="module.title" />
-        <!--平铺-->
-        <div :class="'col' + module.base.column + ' item-duo-display__' + module.base.display">
-          <div v-for="(item, index) in module.list" :key="index" class="item" @click="$util.openAttr(module.list,index)">
-            <div class="c">
-              <p class="pic"><img
-                v-if="item.img"
-                :style="'border-radius:'+module.base.borderradius+'%'"
-                :src="item.img"
-              ><img
-                v-else
-                :style="'border-radius:'+module.base.borderradius+'%'"
-                :src="$util.icon('img.jpg')"
-                alt=""
-              ></p>
-              <p v-if="item.text.show" class="txt">
-                <moduleText :text="item.text" />
-              </p>
-            </div>
+    <div class="item-duo-con" :style="style">
+      <moduleBg :base="module.base" />
+      <moduleTitle v-if="module.title.title.show" :title="module.title" />
+      <!--平铺-->
+      <div :class="'col' + module.base.column + ' item-duo-display__' + module.base.display">
+        <div v-for="(item, index) in module.list" :key="index" class="item" @click="$util.openAttr(module.list,index)">
+          <div class="c">
+            <p class="pic"><img
+              v-if="item.img"
+              :style="'border-radius:'+module.base.borderradius+'%'"
+              :src="item.img"
+            ><img
+              v-else
+              :style="'border-radius:'+module.base.borderradius+'%'"
+              :src="$util.icon('img.jpg')"
+              alt=""
+            ></p>
+            <p v-if="item.text.show" class="txt">
+              <moduleText :text="item.text" />
+            </p>
           </div>
         </div>
       </div>
     </div>
+    </div>
   </div>
 </template>
 <script>

+ 45 - 50
src/views/diypage/module/goods.vue

@@ -1,8 +1,7 @@
 <template>
   <div class="module-item-goods" style="margin-top:0">
     <div
-      :style="'padding-top:' + module.base.paddingTop + 'px;padding-bottom:' + module.base.paddingBottom + 'px;margin-top:' + module.base.marginTop + 'px;margin-bottom:' + module.base.marginBottom + 'px;'"
-    >
+      :style="'padding-top:' + module.base.paddingTop + 'px;padding-bottom:' + module.base.paddingBottom + 'px;margin-top:' + module.base.marginTop + 'px;margin-bottom:' + module.base.marginBottom + 'px;'">
       <div class="item-goods-con" :style="style" :class="'item-goods-display__'+module.base.display">
         <moduleBg :base="module.base" />
         <moduleTitle v-if="module.title.title.show" :title="module.title" />
@@ -52,12 +51,8 @@
             </div>
           </template>
           <template v-if="module.base.source=='choice'">
-            <div
-              v-for="(item, index) in module.list"
-              :key="index"
-              class="item"
-              @click="$util.openAttr(module.list,index)"
-            >
+            <div v-for="(item, index) in module.list" :key="index" class="item"
+              @click="$util.openAttr(module.list,index)">
               <div class="pic">
                 <img :src="item.cm.image" alt="">
               </div>
@@ -79,7 +74,7 @@
                 </div>
               </div>
               <template v-if="module.base.is_binding">
-                <div class="settechnical">选择{{ lang.technical }}</div>
+                <div class="settechnical">选择{{lang.technical}}</div>
               </template>
               <template v-else>
                 <div class="settechnical">详情</div>
@@ -98,52 +93,52 @@
 </template>
 
 <script>
-import moduleBg from '@/views/diypage/module/bg.vue'
-import moduleText from '@/views/diypage/module/text.vue'
-import SelectGoods from '@/views/diypage/attr/selectGoods.vue'
-export default {
-  components: {
-    moduleBg,
-    moduleText,
-    SelectGoods
-  },
-  props: ['module'],
-  data() {
-    return {
-      lang: {},
-      showSelectGoods: false
-    }
-  },
-  computed: {
-    style() {
-      if (this.module.base.fc != '') {
-        return `color:${this.module.base.fc}`
-      } else {
-        return ''
+  import moduleBg from '@/views/diypage/module/bg.vue'
+  import moduleText from '@/views/diypage/module/text.vue'
+  import SelectGoods from '@/views/diypage/attr/selectGoods.vue'
+  export default {
+    components: {
+      moduleBg,
+      moduleText,
+      SelectGoods
+    },
+    props: ['module'],
+    data() {
+      return {
+        lang: {},
+        showSelectGoods: false
       }
-    }
-  },
-  mounted() {
-    this.$api.post('/Lang/getlang').then(res => {
-      this.lang = res.data
-    })
-  },
-  methods: {
-    showtime(item) {
-      const time = item.endTime - item.startTime
-      if (time < 0) {
-        return '活动已结束'
+    },
+    mounted() {
+      this.$api.post('/Lang/getlang').then(res => {
+        this.lang = res.data
+      })
+    },
+    computed: {
+      style() {
+        if (this.module.base.fc != '') {
+          return `color:${this.module.base.fc}`
+        } else {
+          return ''
+        }
       }
-      const re = this.$util.timeformat(time)
-      return `${re.day}天${re.hour}时${re.minute}分${re.second}秒`
     },
+    methods: {
+      showtime(item) {
+        const time = item.endTime - item.startTime
+        if (time < 0) {
+          return '活动已结束'
+        }
+        const re = this.$util.timeformat(time)
+        return `${re.day}天${re.hour}时${re.minute}分${re.second}秒`
+      },
 
-    addGoods() {
-      if (!this.$parent.prev) {
-        this.showSelectGoods = true
+      addGoods() {
+        if (!this.$parent.prev) {
+          this.showSelectGoods = true
+        }
       }
-    }
 
+    }
   }
-}
 </script>

+ 45 - 50
src/views/diypage/module/technical.vue

@@ -1,8 +1,7 @@
 <template>
   <div class="module-item-technical" style="margin-top:0">
     <div
-      :style="'padding-top:' + module.base.paddingTop + 'px;padding-bottom:' + module.base.paddingBottom + 'px;margin-top:' + module.base.marginTop + 'px;margin-bottom:' + module.base.marginBottom + 'px;'"
-    >
+      :style="'padding-top:' + module.base.paddingTop + 'px;padding-bottom:' + module.base.paddingBottom + 'px;margin-top:' + module.base.marginTop + 'px;margin-bottom:' + module.base.marginBottom + 'px;'">
       <div class="item-technical-con" :style="style">
         <moduleBg :base="module.base" />
         <div class="item-technical" :class="'style'+module.base.column">
@@ -29,12 +28,8 @@
             </div>
           </template>
           <template v-if="module.base.source=='choice'">
-            <div
-              v-for="(item, index) in module.list"
-              :key="index"
-              class="item"
-              @click="$util.openAttr(module.list,index)"
-            >
+            <div v-for="(item, index) in module.list" :key="index" class="item"
+              @click="$util.openAttr(module.list,index)">
               <div class="pic">
                 <img :src="item.cm.touxiang" alt="">
               </div>
@@ -45,7 +40,7 @@
               </div>
             </div>
             <div v-if="module.list.length == 0" class="noadd">
-              <el-button type="primary" size="mini" icon="el-icon-plus" @click="addTechnical">添加{{ lang.technical }}</el-button>
+              <el-button type="primary" size="mini" icon="el-icon-plus" @click="addTechnical">添加{{lang.technical}}</el-button>
             </div>
           </template>
         </div>
@@ -57,52 +52,52 @@
 </template>
 
 <script>
-import moduleBg from '@/views/diypage/module/bg.vue'
-import moduleText from '@/views/diypage/module/text.vue'
-import SelectTechnical from '@/views/diypage/attr/selectTechnical.vue'
-export default {
-  components: {
-    moduleBg,
-    moduleText,
-    SelectTechnical
-  },
-  props: ['module'],
-  data() {
-    return {
-      lang: {},
-      showSelectTechnical: false
-    }
-  },
-  computed: {
-    style() {
-      if (this.module.base.fc != '') {
-        return `color:${this.module.base.fc}`
-      } else {
-        return ''
+  import moduleBg from '@/views/diypage/module/bg.vue'
+  import moduleText from '@/views/diypage/module/text.vue'
+  import SelectTechnical from '@/views/diypage/attr/selectTechnical.vue'
+  export default {
+    components: {
+      moduleBg,
+      moduleText,
+      SelectTechnical
+    },
+    props: ['module'],
+    data() {
+      return {
+        lang: {},
+        showSelectTechnical: false
       }
-    }
-  },
-  mounted() {
-    this.$api.post('/Lang/getlang').then(res => {
-      this.lang = res.data
-    })
-  },
-  methods: {
-    showtime(item) {
-      const time = item.endTime - item.startTime
-      if (time < 0) {
-        return '活动已结束'
+    },
+    mounted() {
+      this.$api.post('/Lang/getlang').then(res => {
+        this.lang = res.data
+      })
+    },
+    computed: {
+      style() {
+        if (this.module.base.fc != '') {
+          return `color:${this.module.base.fc}`
+        } else {
+          return ''
+        }
       }
-      const re = this.$util.timeformat(time)
-      return `${re.day}天${re.hour}时${re.minute}分${re.second}秒`
     },
+    methods: {
+      showtime(item) {
+        const time = item.endTime - item.startTime
+        if (time < 0) {
+          return '活动已结束'
+        }
+        const re = this.$util.timeformat(time)
+        return `${re.day}天${re.hour}时${re.minute}分${re.second}秒`
+      },
 
-    addTechnical() {
-      if (!this.$parent.prev) {
-        this.showSelectTechnical = true
+      addTechnical() {
+        if (!this.$parent.prev) {
+          this.showSelectTechnical = true
+        }
       }
-    }
 
+    }
   }
-}
 </script>

+ 39 - 63
src/views/diypage/module/window.vue

@@ -1,20 +1,15 @@
 <template>
   <div class="module-item-window" style="margin-top:0">
-    <div
-      class="item-window-con"
-      :style="'padding-top:' + module.base.paddingTop + 'px;padding-bottom:' + module.base.paddingBottom + 'px;margin-top:' + module.base.marginTop + 'px;margin-bottom:' + module.base.marginBottom + 'px;padding-left:'+ module.base.paddingLeft + 'px;padding-right:'+module.base.paddingLeft + 'px;'"
-    >
+    <div class="item-window-con"
+      :style="'padding-top:' + module.base.paddingTop + 'px;padding-bottom:' + module.base.paddingBottom + 'px;margin-top:' + module.base.marginTop + 'px;margin-bottom:' + module.base.marginBottom + 'px;padding-left:'+ module.base.paddingLeft + 'px;padding-right:'+module.base.paddingLeft + 'px;'">
       <moduleBg :base="module.base" />
       <!--样式一-->
       <div class="item-window-style1" :class="'col' + module.base.column">
         <div class="display">
           <div class="display-left" style="padding: 0px 0px;">
             <div v-if="module.list[0] && module.list[0].type">
-              <windowmodule
-                ref="windowmodule"
-                :element="module.list[0].windowbody"
-                @windowbodyClick="windowbodyClick"
-              />
+              <windowmodule ref="windowmodule" :element="module.list[0].windowbody"
+                @windowbodyClick="windowbodyClick" />
             </div>
             <div v-else>
               <img v-if="module.list[0] && module.list[0].img" :src="module.list[0].img"><img v-else :src="$util.icon('window_01.jpg')">
@@ -23,11 +18,8 @@
           <div class="display-right">
             <div v-if="module.base.style == 'style3'" class="display-right1-style3" style="padding: 0px 0px;">
               <div v-if="module.list[1] && module.list[1].type">
-                <windowmodule
-                  ref="windowmodule"
-                  :element="module.list[1].windowbody"
-                  @windowbodyClick="windowbodyClick"
-                />
+                <windowmodule ref="windowmodule"  :element="module.list[1].windowbody"
+                  @windowbodyClick="windowbodyClick" />
               </div>
               <div v-else>
                 <img v-if="module.list[1] && module.list[1].img" :src="module.list[1].img"><img v-else :src="$util.icon('window_02_1.jpg')">
@@ -35,11 +27,8 @@
             </div>
             <div v-else class="display-right1" style="padding: 0px 0px;">
               <div v-if="module.list[1] && module.list[1].type">
-                <windowmodule
-                  ref="windowmodule"
-                  :element="module.list[1].windowbody"
-                  @windowbodyClick="windowbodyClick"
-                />
+                <windowmodule ref="windowmodule"  :element="module.list[1].windowbody"
+                  @windowbodyClick="windowbodyClick" />
               </div>
               <div v-else>
                 <img v-if="module.list[1] && module.list[1].img" :src="module.list[1].img"><img v-else :src="$util.icon('window_02.jpg')">
@@ -49,43 +38,30 @@
             <div v-if="module.base.style == 'style1'" class="display-right2">
               <div class="left" style="padding: 0px 0px;">
                 <diy v-if="module.list[2] && module.list[2].type">
-                  <windowmodule
-                    ref="windowmodule"
-                    :element="module.list[2].windowbody"
-                    @windowbodyClick="windowbodyClick"
-                  />
+                  <windowmodule ref="windowmodule" :element="module.list[2].windowbody"
+                    @windowbodyClick="windowbodyClick" />
                 </diy>
                 <div v-else>
-                  <img v-if="module.list[2] && module.list[2].img" :src="module.list[2].img"><img
-                    v-else
-                    :src="$util.icon('window_03.jpg')"
-                  >
+                  <img v-if="module.list[2] && module.list[2].img" :src="module.list[2].img"><img v-else
+                    :src="$util.icon('window_03.jpg')">
                 </div>
               </div>
               <div class="right" style="padding: 0px 0px;">
                 <div v-if="module.list[3] && module.list[3].type">
-                  <windowmodule
-                    ref="windowmodule"
-                    :element="module.list[3].windowbody"
-                    @windowbodyClick="windowbodyClick"
-                  />
+                  <windowmodule ref="windowmodule" :element="module.list[3].windowbody"
+                    @windowbodyClick="windowbodyClick" />
                 </div>
 
                 <div v-else>
-                  <img v-if="module.list[3] && module.list[3].img" :src="module.list[3].img"><img
-                    v-else
-                    :src="$util.icon('window_04.jpg')"
-                  >
+                  <img v-if="module.list[3] && module.list[3].img" :src="module.list[3].img"><img v-else
+                    :src="$util.icon('window_04.jpg')">
                 </div>
               </div>
             </div>
             <div v-else-if="module.base.style == 'style2'" class="display-right2" style="padding: 0px 0px;">
               <div v-if="module.list[2] && module.list[2].type">
-                <windowmodule
-                  ref="windowmodule"
-                  :element="module.list[2].windowbody"
-                  @windowbodyClick="windowbodyClick"
-                />
+                <windowmodule ref="windowmodule"  :element="module.list[2].windowbody"
+                  @windowbodyClick="windowbodyClick" />
               </div>
               <div v-else>
                 <img v-if="module.list[2] && module.list[2].img" :src="module.list[2].img"><img v-else :src="$util.icon('window_03_1.jpg')">
@@ -98,30 +74,30 @@
   </div>
 </template>
 <script>
-import windowmodule from '@/views/diypage/module/windowmodule.vue'
-import moduleBg from '@/views/diypage/module/bg.vue'
-import moduleDuo from '@/views/diypage/module/duo.vue'
-export default {
-  components: {
-    moduleBg,
-    moduleDuo,
-    windowmodule
-  },
-  props: ['module'],
-  data() {
-    return {}
-  },
+  import windowmodule from '@/views/diypage/module/windowmodule.vue'
+  import moduleBg from '@/views/diypage/module/bg.vue'
+  import moduleDuo from '@/views/diypage/module/duo.vue'
+  export default {
+    components: {
+      moduleBg,
+      moduleDuo,
+      windowmodule,
+    },
+    props: ['module'],
+    data() {
+      return {}
+    },
 
-  computed: {},
+    computed: {},
 
-  created() {},
+    created() {},
 
-  mounted() {},
-  methods: {
-    // 模块点击
-    windowbodyClick(item) {
-      this.$emit('windowbodyClick', item)
+    mounted() {},
+    methods: {
+      // 模块点击
+      windowbodyClick(item) {
+        this.$emit('windowbodyClick', item)
+      },
     }
   }
-}
 </script>

+ 27 - 23
src/views/diypage/module/windowmodule.vue

@@ -1,25 +1,26 @@
 <template>
   <div id="module">
-    <div
-      class="window-module-item"
-      @click.stop="windowbodyClick(element)"
-    >
-      <moduleBanner v-if="element.type == 'banner'" :module="element" />
-      <moduleNav v-if="element.type == 'navBar'" :module="element" />
-      <moduleSearch v-if="element.type == 'search'" :module="element" />
-      <moduleCoupon v-if="element.type == 'coupon'" :module="element" />
-      <moduleWindow v-if="element.type == 'window'" :module="element" />
-      <moduleDuo v-if="element.type == 'duo'" :module="element" />
-      <modlueImageSingle v-if="element.type == 'imageSingle'" :module="element" />
-      <modlueVideo v-if="element.type == 'video'" :module="element" />
-      <modlueNotice v-if="element.type == 'notice'" :module="element" />
-      <modlueTuwen v-if="element.type == 'tuwen'" :module="element" />
-      <modlueGoods v-if="element.type == 'goods'" :module="element" />
-      <modlueTechnical v-if="element.type == 'technical'" :module="element" />
-      <modlueTuan v-if="element.type == 'tuan'" :module="element" />
-      <modlueMiaosha v-if="element.type == 'miaosha'" :module="element" />
-      <modlueMembergoods v-if="element.type == 'membergoods'" :module="element" />
-    </div>
+      <div
+        class="window-module-item"
+        @click.stop="windowbodyClick(element)"
+      >
+        <moduleBanner v-if="element.type == 'banner'" :module="element" />
+        <moduleNav v-if="element.type == 'navBar'" :module="element" />
+        <moduleSearch v-if="element.type == 'search'" :module="element" />
+        <moduleCoupon v-if="element.type == 'coupon'" :module="element" />
+        <moduleWindow v-if="element.type == 'window'" :module="element" />
+        <moduleDuo v-if="element.type == 'duo'" :module="element" />
+        <modlueImageSingle v-if="element.type == 'imageSingle'" :module="element" />
+        <modlueVideo v-if="element.type == 'video'" :module="element" />
+        <modlueNotice v-if="element.type == 'notice'" :module="element" />
+        <modlueTuwen v-if="element.type == 'tuwen'" :module="element" />
+        <modlueGoods v-if="element.type == 'goods'" :module="element" />
+        <modlueTechnical v-if="element.type == 'technical'" :module="element" />
+        <modlueStore v-if="element.type == 'store'" :module="element" />
+        <modlueTuan v-if="element.type == 'tuan'" :module="element" />
+        <modlueMiaosha v-if="element.type == 'miaosha'" :module="element" />
+        <modlueGoodscard v-if="element.type == 'goodscard'" :module="element" />
+      </div>
   </div>
 </template>
 
@@ -36,9 +37,11 @@ import modlueNotice from '@/views/diypage/module/notice.vue'
 import modlueTuwen from '@/views/diypage/module/tuwen.vue'
 import modlueGoods from '@/views/diypage/module/goods.vue'
 import modlueTechnical from '@/views/diypage/module/technical.vue'
+import modlueStore from '@/views/diypage/module/store.vue'
+
 import modlueTuan from '@/views/diypage/module/tuan.vue'
 import modlueMiaosha from '@/views/diypage/module/miaosha.vue'
-import modlueMembergoods from '@/views/diypage/module/membergoods.vue'
+import modlueGoodscard from '@/views/diypage/module/goodscard.vue'
 
 export default {
   name: 'Module',
@@ -55,9 +58,10 @@ export default {
     modlueTuwen,
     modlueGoods,
     modlueTechnical,
+    modlueStore,
     modlueTuan,
     modlueMiaosha,
-    modlueMembergoods
+    modlueGoodscard
   },
   props: ['element'],
   data() {
@@ -72,7 +76,7 @@ export default {
     // 模块点击
     windowbodyClick(item) {
       this.$emit('windowbodyClick', item)
-    }
+    },
   }
 }
 </script>

+ 29 - 29
src/views/diypage/preview.vue

@@ -20,39 +20,39 @@
 </template>
 
 <script>
-import Module from '@/views/diypage/common/Module.vue'
-import conTitle from '@/views/diypage/module/contitle.vue'
-export default {
-  name: 'Preview',
-  components: {
-    Module,
-    conTitle
-  },
-  props: {
-    show: {
-      type: Boolean,
-      default: false
+  import Module from '@/views/diypage/common/Module.vue'
+  import conTitle from '@/views/diypage/module/contitle.vue'
+  export default {
+    name: 'Preview',
+    components: {
+      Module,
+      conTitle
     },
-    pagebase: {
-      type: Array
+    props: {
+      show: {
+        type: Boolean,
+        default: false
+      },
+      pagebase: {
+        type: Array
+      },
+      modulelist: {
+        type: Array
+      },
+      name: {
+        default: ''
+      }
     },
-    modulelist: {
-      type: Array
+    data() {
+      return {}
     },
-    name: {
-      default: ''
-    }
-  },
-  data() {
-    return {}
-  },
-  mounted() {
+    mounted() {
 
-  },
-  methods: {
-    beforeClose() {
-      this.$parent.showPreview = false
+    },
+    methods: {
+      beforeClose() {
+        this.$parent.showPreview = false
+      }
     }
   }
-}
 </script>

+ 2 - 2
src/views/domainreplace/index.vue

@@ -142,7 +142,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Domainreplace',
+  name: 'domainreplace',
   components: {
     Search,
     Pagination,
@@ -177,7 +177,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/forhelp/index.vue

@@ -171,7 +171,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 1 - 1
src/views/goods/index.vue

@@ -65,7 +65,7 @@
         <el-table-column align="left" property="name" label="名称" show-overflow-tooltip width="380" />
         <el-table-column align="left" property="price" label="价格" show-overflow-tooltip width="" />
         <el-table-column align="left" property="quantity" label="库存" show-overflow-tooltip width="" />
-        <el-table-column align="center" property="is_recommended" label="推荐" show-overflow-tooltip width="">
+        <el-table-column align="center" property="is_recommended" label="推荐到猜你喜欢" show-overflow-tooltip width="">
           <template slot-scope="scope">
             <el-switch
               v-model="scope.row.is_recommended"

+ 159 - 252
src/views/goods/update.vue

@@ -1,21 +1,9 @@
 <template>
   <div>
-    <el-dialog
-      :title="dialogtitle"
-      width="1200px"
-      class="icon-dialog"
-      :visible.sync="show"
-      :before-close="closeForm"
-      append-to-body
-      @open="open"
-    >
-      <el-form
-        ref="form"
-        :size="size"
-        :model="form"
-        :rules="rules"
-        :label-width="$store.getters.device !== 'mobile'?'16%':'90px'"
-      >
+    <el-dialog :title="dialogtitle" width="1200px" class="icon-dialog" :visible.sync="show" :before-close="closeForm"
+      append-to-body @open="open">
+      <el-form ref="form" :size="size" :model="form" :rules="rules"
+        :label-width="$store.getters.device !== 'mobile'?'16%':'90px'">
         <el-tabs v-model="activeName">
           <el-tab-pane style="padding-top:10px" label="基本信息" name="基本信息">
             <el-row>
@@ -35,15 +23,8 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="分类" prop="cat_id">
-                  <Treeselect
-                    v-model="form.cat_id"
-                    :default-expand-level="1"
-                    :options="cidarray"
-                    :normalizer="normalizer"
-                    :show-count="true"
-                    z-index="999999"
-                    placeholder="请选择所分类"
-                  />
+                  <Treeselect v-model="form.cat_id" :default-expand-level="1" :options="cidarray"
+                    :normalizer="normalizer" :show-count="true" z-index="999999" placeholder="请选择所分类" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -80,13 +61,8 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="单位">
-                  <el-select
-                    v-model="form.quantity_unit"
-                    style="width:160px;"
-                    filterable
-                    clearable
-                    placeholder="请选择单位"
-                  >
+                  <el-select v-model="form.quantity_unit" style="width:160px;" filterable clearable
+                    placeholder="请选择单位">
                     <el-option v-for="(item,i) in unitarray" :key="i" :label="item.key" :value="item.val" />
                   </el-select>
                 </el-form-item>
@@ -95,45 +71,24 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="库存" prop="quantity">
-                  <el-input-number
-                    v-model="form.quantity"
-                    controls-position="right"
-                    style="width:200px;"
-                    auto-complete="off"
-                    clearable
-                    :min="0"
-                    placeholder="请输入库存"
-                  />
+                  <el-input-number v-model="form.quantity" controls-position="right" style="width:200px;"
+                    auto-complete="off" clearable :min="0" placeholder="请输入库存" />
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row>
               <el-col :span="24">
                 <el-form-item :label="'兑换所需'+lang.points">
-                  <el-input-number
-                    v-model="form.pay_points"
-                    controls-position="right"
-                    style="width:200px;"
-                    auto-complete="off"
-                    clearable
-                    :min="0"
-                    :placeholder="'兑换所需'+lang.points"
-                  />
+                  <el-input-number v-model="form.pay_points" controls-position="right" style="width:200px;"
+                    auto-complete="off" clearable :min="0" :placeholder="'兑换所需'+lang.points" />
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row v-if="form.is_points_goods!=1">
               <el-col :span="24">
                 <el-form-item label="能抵扣的金额">
-                  <el-input-number
-                    v-model="form.points_price"
-                    controls-position="right"
-                    style="width:200px;"
-                    auto-complete="off"
-                    clearable
-                    :min="0"
-                    placeholder="能抵扣的金额"
-                  />
+                  <el-input-number v-model="form.points_price" controls-position="right" style="width:200px;"
+                    auto-complete="off" clearable :min="0" placeholder="能抵扣的金额" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -141,10 +96,10 @@
               <el-col :span="24">
                 <el-form-item :label="'购买得'+lang.points">
                   <el-input v-model="form.points" style="width:500px;" auto-complete="off" clearable placeholder="请输入">
-                    <template slot="append"><span v-if="!form.points_method">%</span><span v-else>{{ lang.points }}</span>
+                    <template slot="append"><span v-if="!form.points_method">%</span><span v-else>{{lang.points}}</span>
                       <el-radio-group v-model="form.points_method" style="padding-left: 10px;">
                         <el-radio :label="0">金额百分比</el-radio>
-                        <el-radio :label="1">固定{{ lang.points }}</el-radio>
+                        <el-radio :label="1">固定{{lang.points}}</el-radio>
                       </el-radio-group></template>
                   </el-input>
                 </el-form-item>
@@ -160,15 +115,8 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="排序">
-                  <el-input-number
-                    v-model="form.sort"
-                    controls-position="right"
-                    style="width:200px;"
-                    auto-complete="off"
-                    clearable
-                    :min="0"
-                    placeholder="排序"
-                  />
+                  <el-input-number v-model="form.sort" controls-position="right" style="width:200px;"
+                    auto-complete="off" clearable :min="0" placeholder="排序" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -201,23 +149,17 @@
             </el-row>
           </el-tab-pane>
           <el-tab-pane style="padding-top:10px" label="规格/选项" name="规格/选项">
-            <el-row>
+            <!--<el-row>
               <el-col :span="24">
                 <el-form-item label="多规格同时下单">
                   <el-switch v-model="form.is_skumore" :active-value="1" :inactive-value="0" />
                 </el-form-item>
               </el-col>
-            </el-row>
+            </el-row>-->
             <el-row>
               <el-col :span="24">
-                <SkuForm
-                  :show="show"
-                  :source-attribute="form.sourceAttribute"
-                  :structure="structure"
-                  :attribute.sync="form.attribute"
-                  :sku.sync="form.sku"
-                  :theme="theme"
-                >
+                <SkuForm :show="show" :source-attribute="form.sourceAttribute" :structure="structure"
+                  :attribute.sync="form.attribute" :sku.sync="form.sku" :theme="theme">
                   <template #image="slotProps">
                     <div class="image-upload-container">
                       <ImagesUpload size="small" file-type="image" :image.sync="slotProps.row.image" />
@@ -253,13 +195,8 @@
               <el-row>
                 <el-col :span="24">
                   <el-form-item label="独立佣金">
-                    <el-input
-                      v-model="form.commission_price"
-                      style="width:500px;"
-                      auto-complete="off"
-                      clearable
-                      placeholder="请输入"
-                    >
+                    <el-input v-model="form.commission_price" style="width:500px;" auto-complete="off" clearable
+                      placeholder="请输入">
                       <template v-if="form.commission_method==0" slot="append">%</template>
                       <template v-if="form.commission_method==1" slot="append">元</template>
                     </el-input>
@@ -291,12 +228,8 @@
               <el-row v-for="(item,i) in form.MemberGroup" :key="i">
                 <el-col :span="24">
                   <el-form-item :label="item.title">
-                    <el-select
-                      v-if="form.member_discount_method==1"
-                      v-model="item.addsubtract"
-                      style="width:60px;margin-right: 8px;"
-                      placeholder="加"
-                    >
+                    <el-select v-if="form.member_discount_method==1" v-model="item.addsubtract"
+                      style="width:60px;margin-right: 8px;" placeholder="加">
                       <el-option label="加" :value="0" />
                       <el-option label="减" :value="1" />
                     </el-select>
@@ -322,13 +255,8 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="重量">
-                  <el-input
-                    v-model="form.weight"
-                    style="width:500px;"
-                    auto-complete="off"
-                    clearable
-                    placeholder="请输入重量"
-                  >
+                  <el-input v-model="form.weight" style="width:500px;" auto-complete="off" clearable
+                    placeholder="请输入重量">
                     <template slot="append">千克(KG)</template>
                   </el-input>
                   <div class="help-block">重量跟物流费挂勾</div>
@@ -338,30 +266,16 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="销量基数">
-                  <el-input-number
-                    v-model="form.sale_count_base"
-                    controls-position="right"
-                    style="width:300px;"
-                    auto-complete="off"
-                    clearable
-                    :min="0"
-                    placeholder="请输入销量基数"
-                  />
+                  <el-input-number v-model="form.sale_count_base" controls-position="right" style="width:300px;"
+                    auto-complete="off" clearable :min="0" placeholder="请输入销量基数" />
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row>
               <el-col :span="24">
                 <el-form-item label="点击量基数">
-                  <el-input-number
-                    v-model="form.viewed_base"
-                    controls-position="right"
-                    style="width:300px;"
-                    auto-complete="off"
-                    clearable
-                    :min="0"
-                    placeholder="请输入点击量基数"
-                  />
+                  <el-input-number v-model="form.viewed_base" controls-position="right" style="width:300px;"
+                    auto-complete="off" clearable :min="0" placeholder="请输入点击量基数" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -383,15 +297,8 @@
             <el-row>
               <el-col :span="24">
                 <el-form-item label="最小起订数目">
-                  <el-input-number
-                    v-model="form.minimum"
-                    controls-position="right"
-                    style="width:300px;"
-                    auto-complete="off"
-                    clearable
-                    :min="0"
-                    placeholder="请输入最小起订数目"
-                  />
+                  <el-input-number v-model="form.minimum" controls-position="right" style="width:300px;"
+                    auto-complete="off" clearable :min="0" placeholder="请输入最小起订数目" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -409,142 +316,142 @@
   </div>
 </template>
 <script>
-import Treeselect from '@riophae/vue-treeselect'
-import Tag from '@/components/common/Tag.vue'
-import '@riophae/vue-treeselect/dist/vue-treeselect.css'
-import ImagesUpload from '@/components/common/ImagesUpload.vue'
-import WangEditor from '@/components/common/WangEditor.vue'
-import SkuForm from '@/components/common/SkuForm.vue'
-export default {
-  name: 'Goodsupdate',
-  components: {
-    Treeselect,
-    WangEditor,
-    ImagesUpload,
-    SkuForm,
-    Tag
-  },
-  props: {
-    show: {
-      type: Boolean,
-      default: false
-    },
-    opentype: {
-      type: String,
-      default: 'add'
-    },
-    size: {
-      type: String,
-      default: 'small'
+  import Treeselect from '@riophae/vue-treeselect'
+  import Tag from '@/components/common/Tag.vue'
+  import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+  import ImagesUpload from '@/components/common/ImagesUpload.vue'
+  import WangEditor from '@/components/common/WangEditor.vue'
+  import SkuForm from '@/components/common/SkuForm.vue'
+  export default {
+    name: 'Goodsupdate',
+    components: {
+      Treeselect,
+      WangEditor,
+      ImagesUpload,
+      SkuForm,
+      Tag
     },
-    info: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      lang: {},
-      Config: {},
-      dialogtitle: '',
-      form: {
-        title: '',
-        sourceAttribute: [],
-        attribute: [],
-        sku: [],
-        keyword: [],
-        status: 1
+    props: {
+      show: {
+        type: Boolean,
+        default: false
       },
-      cidarray: [],
-      unitarray: [],
-      loading: false,
-      rules: {
-        title: [{
-          required: true,
-          message: '显示文字不能为空',
-          trigger: 'blur'
-        }]
+      opentype: {
+        type: String,
+        default: 'add'
       },
-      theme: 2,
-      structure: [{
-        name: 'image',
-        type: 'slot',
-        label: '图片'
-      }, {
-        name: 'price',
-        type: 'input',
-        label: '价格'
-      }, {
-        name: 'quantity',
-        type: 'input',
-        label: '库存'
-      }],
-      activeName: '基本信息'
-    }
-  },
-  watch: {
-    show(val) {
-      if (val) {
-        this.$api.post('/goods/getField', {
-          ptype: 1
-        }).then(res => {
-          this.cidarray = res.data.cidarray
-          this.unitarray = res.data.unitarray
-        })
+      size: {
+        type: String,
+        default: 'small'
+      },
+      info: {
+        type: Object
       }
-    }
-  },
-  mounted() {
-    this.$api.post('/Config/getInfo').then(res => {
-      this.Config = res.data
-    })
-    this.$api.post('/Lang/getlang').then(res => {
-      this.lang = res.data
-    })
-  },
-  methods: {
-    open() {
-      this.activeName = '基本信息'
-      if (this.opentype == 'update') {
-        this.dialogtitle = '修改'
-      } else {
-        this.dialogtitle = '添加'
+    },
+    data() {
+      return {
+        lang: {},
+        Config: {},
+        dialogtitle: '',
+        form: {
+          title: '',
+          sourceAttribute: [],
+          attribute: [],
+          sku: [],
+          keyword: [],
+          status: 1
+        },
+        cidarray: [],
+        unitarray:[],
+        loading: false,
+        rules: {
+          title: [{
+            required: true,
+            message: '显示文字不能为空',
+            trigger: 'blur'
+          }]
+        },
+        theme: 2,
+        structure: [{
+          name: 'image',
+          type: 'slot',
+          label: '图片'
+        }, {
+          name: 'price',
+          type: 'input',
+          label: '价格'
+        }, {
+          name: 'quantity',
+          type: 'input',
+          label: '库存'
+        }],
+        activeName: '基本信息'
       }
-      this.form = this.info
     },
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.$api.post('/goods/update', this.form).then(res => {
-            this.$message({
-              message: res.msg,
-              type: 'success'
-            })
-            this.$emit('refesh_list')
-            this.closeForm()
-          }).catch(() => {
-            this.loading = false
+    watch: {
+      show(val) {
+        if (val) {
+          this.$api.post('/goods/getField', {
+            ptype: 1
+          }).then(res => {
+            this.cidarray = res.data.cidarray
+            this.unitarray = res.data.unitarray
           })
         }
-      })
-    },
-    closeForm() {
-      this.$emit('update:show', false)
-      this.loading = false
-      if (this.$refs['form'] !== undefined) {
-        this.$refs['form'].resetFields()
       }
     },
-    normalizer(data) {
-      if (data.children && !data.children.length) {
-        delete data.children
-      }
-      return {
-        id: data.val,
-        label: data.key,
-        children: data.children
+    mounted() {
+      this.$api.post('/Config/getInfo').then(res => {
+        this.Config = res.data
+      })
+      this.$api.post('/Lang/getlang').then(res => {
+        this.lang = res.data
+      })
+    },
+    methods: {
+      open() {
+        this.activeName = '基本信息'
+        if (this.opentype == 'update') {
+          this.dialogtitle = '修改'
+        } else {
+          this.dialogtitle = '添加'
+        }
+        this.form = this.info
+      },
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true
+            this.$api.post('/goods/update', this.form).then(res => {
+              this.$message({
+                message: res.msg,
+                type: 'success'
+              })
+              this.$emit('refesh_list')
+              this.closeForm()
+            }).catch(() => {
+              this.loading = false
+            })
+          }
+        })
+      },
+      closeForm() {
+        this.$emit('update:show', false)
+        this.loading = false
+        if (this.$refs['form'] !== undefined) {
+          this.$refs['form'].resetFields()
+        }
+      },
+      normalizer(data) {
+        if (data.children && !data.children.length) {
+          delete data.children
+        }
+        return {
+          id: data.val,
+          label: data.key,
+          children: data.children
+        }
       }
     }
   }
-}
 </script>

+ 1 - 1
src/views/goodscategory/index.vue

@@ -207,7 +207,7 @@ export default {
   methods: {
     getList() {
       const param = {
-        ptype: 1
+        ptype: 1,
       }
       Object.assign(param, this.searchData)
       Object.assign(param, param2Obj(this.$route.fullPath))

+ 2 - 2
src/views/goodsquantityunitl/goods.vue

@@ -132,7 +132,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Goodsquantityunitl',
+  name: 'goodsquantityunitl',
   directives: { waves },
   components: {
     Search,
@@ -162,7 +162,7 @@ export default {
   methods: {
     getList() {
       const param = {
-        path: this.$route.path
+        path: this.$route.path,
       }
       Object.assign(param, this.searchData)
       Object.assign(param, param2Obj(this.$route.fullPath))

+ 2 - 2
src/views/goodsquantityunitl/service.vue

@@ -132,7 +132,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Goodsquantityunitl',
+  name: 'goodsquantityunitl',
   directives: { waves },
   components: {
     Search,
@@ -162,7 +162,7 @@ export default {
   methods: {
     getList() {
       const param = {
-        path: this.$route.path
+        path: this.$route.path,
       }
       Object.assign(param, this.searchData)
       Object.assign(param, param2Obj(this.$route.fullPath))

+ 74 - 86
src/views/goodsquantityunitl/update.vue

@@ -1,21 +1,9 @@
 <template>
   <div>
-    <el-dialog
-      :title="dialogtitle"
-      width="900px"
-      class="icon-dialog"
-      :visible.sync="show"
-      :before-close="closeForm"
-      append-to-body
-      @open="open"
-    >
-      <el-form
-        ref="form"
-        :size="size"
-        :model="form"
-        :rules="rules"
-        :label-width="$store.getters.device !== 'mobile'?'20%':'90px'"
-      >
+    <el-dialog :title="dialogtitle" width="900px" class="icon-dialog" :visible.sync="show" :before-close="closeForm"
+      append-to-body @open="open">
+      <el-form ref="form" :size="size" :model="form" :rules="rules"
+        :label-width="$store.getters.device !== 'mobile'?'20%':'90px'">
         <el-row>
           <el-col :span="24">
             <el-form-item label="单位" prop="title">
@@ -42,85 +30,85 @@
   </div>
 </template>
 <script>
-export default {
-  name: 'Goodsquantityunitlupdate',
-  components: {},
-  props: {
-    show: {
-      type: Boolean,
-      default: false
-    },
-    opentype: {
-      type: String,
-      default: 'add'
-    },
-    size: {
-      type: String,
-      default: 'small'
-    },
-    info: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      dialogtitle: '',
-      form: {
-        title: '',
-        status: 1
+  export default {
+    name: 'goodsquantityunitlupdate',
+    components: {},
+    props: {
+      show: {
+        type: Boolean,
+        default: false
       },
-      loading: false,
-      rules: {
-        title: [{
-          required: true,
-          message: '单位不能为空',
-          trigger: 'blur'
-        }]
+      opentype: {
+        type: String,
+        default: 'add'
+      },
+      size: {
+        type: String,
+        default: 'small'
+      },
+      info: {
+        type: Object
       }
-    }
-  },
-  watch: {
-    show(val) {}
-  },
-  methods: {
-    open() {
-      if (this.opentype == 'update') {
-        this.dialogtitle = '修改'
-        this.form = this.info
-      } else {
-        this.dialogtitle = '添加'
-        this.form = {
-          type: 1,
+    },
+    data() {
+      return {
+        dialogtitle: '',
+        form: {
+          title: '',
           status: 1
+        },
+        loading: false,
+        rules: {
+          title: [{
+            required: true,
+            message: '单位不能为空',
+            trigger: 'blur'
+          }]
         }
-        // console.log(this.form);
       }
     },
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.form.path = this.$route.path
-          this.$api.post('/goodsquantityunitl/update', this.form).then(res => {
-            this.$message({
-              message: res.msg,
-              type: 'success'
+    watch: {
+      show(val) {}
+    },
+    methods: {
+      open() {
+        if (this.opentype == 'update') {
+          this.dialogtitle = '修改'
+          this.form = this.info
+        } else {
+          this.dialogtitle = '添加'
+          this.form = {
+            type: 1,
+            status: 1
+          }
+          // console.log(this.form);
+        }
+      },
+      submit() {
+        this.$refs['form'].validate(valid => {
+          if (valid) {
+            this.loading = true
+            this.form.path = this.$route.path
+            this.$api.post('/goodsquantityunitl/update', this.form).then(res => {
+              this.$message({
+                message: res.msg,
+                type: 'success'
+              })
+              this.$emit('refesh_list')
+              this.closeForm()
+            }).catch(() => {
+              this.loading = false
             })
-            this.$emit('refesh_list')
-            this.closeForm()
-          }).catch(() => {
-            this.loading = false
-          })
+          }
+        })
+      },
+      closeForm() {
+        this.$emit('update:show', false)
+        this.loading = false
+        if (this.$refs['form'] !== undefined) {
+          this.$refs['form'].resetFields()
         }
-      })
-    },
-    closeForm() {
-      this.$emit('update:show', false)
-      this.loading = false
-      if (this.$refs['form'] !== undefined) {
-        this.$refs['form'].resetFields()
       }
     }
   }
-}
 </script>

+ 1 - 1
src/views/hospital/index.vue

@@ -150,7 +150,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Hospital',
+  name: 'hospital',
   components: {
     Search,
     Update

+ 3 - 3
src/views/hospital/update.vue

@@ -67,10 +67,10 @@
   </div>
 </template>
 <script>
-import ImagesUpload from '@/components/common/ImagesUpload.vue'
+  import ImagesUpload from '@/components/common/ImagesUpload.vue'
 export default {
-  name: 'Hospitalupdate',
-  components: { ImagesUpload },
+  name: 'hospitalupdate',
+  components: {ImagesUpload},
   props: {
     show: {
       type: Boolean,

+ 125 - 166
src/views/hospitalcate/index.vue

@@ -2,52 +2,24 @@
   <div>
     <el-row class="app-toptool" type="flex">
       <el-col :span="16">
-        <Search
-          size="small"
-          :search-visible="searchVisible"
-          :search-data.sync="searchData"
-          :search-form="searchForm"
-          @refesh_list="getList"
-        />
+        <Search size="small" :search-visible="searchVisible" :search-data.sync="searchData" :search-form="searchForm"
+          @refesh_list="getList" />
       </el-col>
       <el-col :span="8">
         <div class="btn-group" style="margin-bottom:11px;float: right;">
           <div>
-            <el-button
-              v-if="checkPermission('/hospitalcate/add')"
-              type="primary"
-              size="small"
-              icon="el-icon-plus"
-              @click="add()"
-            >添加</el-button>
-            <el-button
-              v-if="checkPermission('/hospitalcate/delete')"
-              type="primary"
-              :disabled="multiple"
-              size="small"
-              icon="el-icon-delete"
-              @click="del(ids)"
-            >删除
+            <el-button v-if="checkPermission('/hospitalcate/add')" type="primary" size="small" icon="el-icon-plus"
+              @click="add()">添加</el-button>
+            <el-button v-if="checkPermission('/hospitalcate/delete')" type="primary" :disabled="multiple" size="small"
+              icon="el-icon-delete" @click="del(ids)">删除
             </el-button>
           </div>
         </div>
       </el-col>
     </el-row>
-    <el-table
-      ref="multipleTable"
-      v-loading="loading"
-      :row-class-name="rowClass"
-      :tree-props="{children: 'children'}"
-      :default-expand-all="expand"
-      row-key="id"
-      :header-cell-style="{ background: '#eef1f6', color: '#606266' }"
-      :border="false"
-      :stripe="true"
-      class="eltable"
-      :data="list"
-      style="width: 100%"
-      @selection-change="selection"
-    >
+    <el-table ref="multipleTable" v-loading="loading" :row-class-name="rowClass" :tree-props="{children: 'children'}"
+      :default-expand-all="expand" row-key="id" :header-cell-style="{ background: '#eef1f6', color: '#606266' }"
+      :border="false" :stripe="true" class="eltable" :data="list" style="width: 100%" @selection-change="selection">
       <el-table-column align="center" type="selection" width="42" />
       <el-table-column align="center" type="" property="id" label="编号" show-overflow-tooltip width="70" />
       <el-table-column align="left" property="title" label="名称" show-overflow-tooltip width="" />
@@ -55,12 +27,8 @@
       <el-table-column align="left" property="update_time" label="修改时间" show-overflow-tooltip width="" />
       <el-table-column align="center" property="status" label="状态" show-overflow-tooltip width="">
         <template slot-scope="scope">
-          <el-switch
-            v-model="scope.row.status"
-            :active-value="1"
-            :inactive-value="0"
-            @change="listUpdate(scope.row,'status')"
-          />
+          <el-switch v-model="scope.row.status" :active-value="1" :inactive-value="0"
+            @change="listUpdate(scope.row,'status')" />
         </template>
 
       </el-table-column>
@@ -72,151 +40,142 @@
       <el-table-column label="操作" align="center" width="100">
         <template slot-scope="scope">
           <div v-if="scope.row.id">
-            <el-button
-              v-if="checkPermission('/hospitalcate/update')"
-              size="mini"
-              type="primary"
-              @click="update(scope.row)"
-            ><i class="el-icon-edit" />修改</el-button>
+            <el-button v-if="checkPermission('/hospitalcate/update')" size="mini" type="primary"
+              @click="update(scope.row)"><i class="el-icon-edit" />修改</el-button>
           </div>
         </template>
       </el-table-column>
     </el-table>
     <div style="height: 60px;" />
     <!--添加/修改-->
-    <Update
-      :info="updateInfo"
-      :opentype="opentype"
-      :show.sync="dialog.updateDialogStatus"
-      size="small"
-      @refesh_list="getList"
-    />
+    <Update :info="updateInfo" :opentype="opentype" :show.sync="dialog.updateDialogStatus" size="small"
+      @refesh_list="getList" />
 
   </div>
 </template>
 
 <script>
-import Search from '@/components/common/Search'
-import Update from '@/views/hospitalcate/update.vue'
-import waves from '@/directive/waves' // waves directive
-import {
-  confirm,
-  param2Obj
-} from '@/utils/common'
-export default {
-  name: 'Hospitalcate',
-  directives: {
-    waves
-  },
-  components: {
-    Search,
-    Update
-  },
-  data() {
-    return {
-      dialog: {
-        updateDialogStatus: false
-      },
-      ids: [],
-      single: true,
-      multiple: true,
-      list: [],
-      opentype: 'add',
-      updateInfo: {},
-      loading: false,
-      searchVisible: true,
-      searchForm: [],
-      searchData: {},
-      expand: true
-    }
-  },
-  mounted() {
-    this.getList()
-  },
-  methods: {
-    getList() {
-      const param = {}
-      Object.assign(param, this.searchData)
-      Object.assign(param, param2Obj(this.$route.fullPath))
-      this.loading = true
-      this.$api.post('/hospitalcate/index', param).then(res => {
-        this.list = res.data
-        this.loading = false
-
-        this.searchForm = [{
-          type: 'Input',
-          label: '关键词',
-          prop: 'keyword',
-          width: '230px'
-        }]
-      })
+  import Search from '@/components/common/Search'
+  import Update from '@/views/hospitalcate/update.vue'
+  import waves from '@/directive/waves' // waves directive
+  import {
+    confirm,
+    param2Obj
+  } from '@/utils/common'
+  export default {
+    name: 'hospitalcate',
+    directives: {
+      waves
     },
-    listUpdate(row, field) {
-      if (row.id) {
-        this.$api.post('/hospitalcate/listUpdate', {
-          id: row.id,
-          [field]: row[field]
-        }).then(res => {
-          this.$message({
-            message: '操作成功',
-            type: 'success'
-          })
-        })
+    components: {
+      Search,
+      Update
+    },
+    data() {
+      return {
+        dialog: {
+          updateDialogStatus: false
+        },
+        ids: [],
+        single: true,
+        multiple: true,
+        list: [],
+        opentype: 'add',
+        updateInfo: {},
+        loading: false,
+        searchVisible: true,
+        searchForm: [],
+        searchData: {},
+        expand: true
       }
     },
-    add() {
-      this.opentype = 'add'
-      this.dialog.updateDialogStatus = true
+    mounted() {
+      this.getList()
     },
-    update(row) {
-      this.opentype = 'update'
-      const id = row.id ? row.id : this.ids.join(',')
-      this.$api.post('/hospitalcate/getInfo', {
-        id: id
-      }).then(res => {
+    methods: {
+      getList() {
+        const param = {}
+        Object.assign(param, this.searchData)
+        Object.assign(param, param2Obj(this.$route.fullPath))
+        this.loading = true
+        this.$api.post('/hospitalcate/index', param).then(res => {
+          this.list = res.data
+          this.loading = false
+
+          this.searchForm = [{
+            type: 'Input',
+            label: '关键词',
+            prop: 'keyword',
+            width: '230px'
+          }]
+        })
+      },
+      listUpdate(row, field) {
+        if (row.id) {
+          this.$api.post('/hospitalcate/listUpdate', {
+            id: row.id,
+            [field]: row[field]
+          }).then(res => {
+            this.$message({
+              message: '操作成功',
+              type: 'success'
+            })
+          })
+        }
+      },
+      add() {
+        this.opentype = 'add'
         this.dialog.updateDialogStatus = true
-        this.updateInfo = res.data
-      })
-    },
-    del(row) {
-      confirm({
-        content: '确定要操作吗'
-      }).then(() => {
-        const ids = row.id ? row.id : this.ids.join(',')
-        this.$api.post('/hospitalcate/delete', {
-          id: ids
+      },
+      update(row) {
+        this.opentype = 'update'
+        const id = row.id ? row.id : this.ids.join(',')
+        this.$api.post('/hospitalcate/getInfo', {
+          id: id
         }).then(res => {
-          this.$message({
-            message: res.msg,
-            type: 'success'
-          })
-          this.getList()
+          this.dialog.updateDialogStatus = true
+          this.updateInfo = res.data
         })
-      }).catch(() => {})
-    },
-    selection(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length != 1
-      this.multiple = !selection.length
-    },
-    rowClass({
-      row,
-      rowIndex
-    }) {
-      for (let i = 0; i < this.ids.length; i++) {
-        if (row.id === this.ids[i]) {
-          return 'rowLight'
+      },
+      del(row) {
+        confirm({
+          content: '确定要操作吗'
+        }).then(() => {
+          const ids = row.id ? row.id : this.ids.join(',')
+          this.$api.post('/hospitalcate/delete', {
+            id: ids
+          }).then(res => {
+            this.$message({
+              message: res.msg,
+              type: 'success'
+            })
+            this.getList()
+          })
+        }).catch(() => {})
+      },
+      selection(selection) {
+        this.ids = selection.map(item => item.id)
+        this.single = selection.length != 1
+        this.multiple = !selection.length
+      },
+      rowClass({
+        row,
+        rowIndex
+      }) {
+        for (let i = 0; i < this.ids.length; i++) {
+          if (row.id === this.ids[i]) {
+            return 'rowLight'
+          }
         }
+      },
+      toggleRowExpansion() {
+        this.expand = !this.expand
+        this.list.forEach(item => {
+          this.$refs.multipleTable.toggleRowExpansion(item, this.expand)
+        })
       }
-    },
-    toggleRowExpansion() {
-      this.expand = !this.expand
-      this.list.forEach(item => {
-        this.$refs.multipleTable.toggleRowExpansion(item, this.expand)
-      })
     }
   }
-}
 </script>
 
 <style scoped>

+ 1 - 1
src/views/hospitalcate/update.vue

@@ -59,7 +59,7 @@
 </template>
 <script>
 export default {
-  name: 'Hospitalcateupdate',
+  name: 'hospitalcateupdate',
   components: {},
   props: {
     show: {

+ 1 - 1
src/views/hospitaldepartments/index.vue

@@ -157,7 +157,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Hospitaldepartments',
+  name: 'hospitaldepartments',
   directives: { waves },
   components: {
     Search,

+ 1 - 1
src/views/hospitaldepartments/update.vue

@@ -83,7 +83,7 @@ import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 import ImagesUpload from '@/components/common/ImagesUpload.vue'
 export default {
-  name: 'Hospitaldepartmentsupdate',
+  name: 'hospitaldepartmentsupdate',
   components: {
     Treeselect,
     ImagesUpload

+ 1 - 1
src/views/hospitallevel/index.vue

@@ -131,7 +131,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Hospitallevel',
+  name: 'hospitallevel',
   components: {
     Search,
     Update

+ 3 - 3
src/views/housingestate/index.vue

@@ -85,7 +85,7 @@
         >
           <template slot-scope="scope">
             <div v-if="scope.row.tuanzhang">
-              {{ scope.row.tuanzhang.title }} {{ scope.row.tuanzhang.tel }}
+              {{scope.row.tuanzhang.title}} {{scope.row.tuanzhang.tel}}
             </div>
           </template>
         </el-table-column>
@@ -183,7 +183,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Housingestate',
+  name: 'housingestate',
   components: {
     Search,
     Pagination,
@@ -218,7 +218,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 5 - 4
src/views/housingestate/my.vue

@@ -12,7 +12,8 @@
       </el-col>
       <el-col :span="8">
         <div class="btn-group" style="margin-bottom:11px;float: right;">
-          <div />
+          <div>
+          </div>
         </div>
       </el-col>
     </el-row>
@@ -68,7 +69,7 @@
         >
           <template slot-scope="scope">
             <div v-if="scope.row.tuanzhang">
-              {{ scope.row.tuanzhang.title }} {{ scope.row.tuanzhang.tel }}
+              {{scope.row.tuanzhang.title}} {{scope.row.tuanzhang.tel}}
             </div>
           </template>
         </el-table-column>
@@ -112,7 +113,7 @@ import {
   param2Obj
 } from '@/utils/common'
 export default {
-  name: 'Housingestatemy',
+  name: 'housingestatemy',
   components: {
     Search,
     Pagination
@@ -141,7 +142,7 @@ export default {
   },
   methods: {
     searchgo() {
-      this.page_data.page = 1
+      this.page_data.page = 1;
       this.index()
     },
     index() {

+ 13 - 17
src/views/housingestate/update.vue

@@ -16,15 +16,15 @@
         :rules="rules"
         :label-width="$store.getters.device !== 'mobile'?'16%':'90px'"
       >
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="所属社区">
-              <el-select v-model="form.tzid" style="width:100%" filterable clearable placeholder="请选择">
-                <el-option v-for="(item,i) in tzidarray" :key="i" :label="item.key" :value="item.val" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
+      <el-row>
+        <el-col :span="24">
+          <el-form-item label="所属社区">
+            <el-select v-model="form.tzid" style="width:100%" filterable clearable placeholder="请选择">
+              <el-option v-for="(item,i) in tzidarray" :key="i" :label="item.key" :value="item.val" />
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
         <el-row>
           <el-col :span="24">
             <el-form-item label="小区名称" prop="title">
@@ -49,12 +49,8 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="地区">
-              <el-cascader
-                v-model="form.region_name"
-                expand-trigger="hover"
-                :change-on-select="true"
-                :options="areaoptions"
-              />
+              <el-cascader v-model="form.region_name" expand-trigger="hover" :change-on-select="true"
+                :options="areaoptions" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -102,7 +98,7 @@
 <script>
 import ImagesUpload from '@/components/common/ImagesUpload.vue'
 export default {
-  name: 'Housingestateupdate',
+  name: 'housingestateupdate',
   components: {
     ImagesUpload
   },
@@ -147,7 +143,7 @@ export default {
       if (val) {
         this.$api.post('/housingestate/getField').then(res => {
           this.tzidarray = res.data.tzidarray
-        })
+        });
         this.$api.post('/Area/getpcTree').then(res => {
           this.areaoptions = res.data
         })

+ 7 - 5
src/views/index/index.vue

@@ -109,13 +109,15 @@
         </div>
       </el-col>
     </el-row>
-    <el-row style="background:#fff;padding:16px 16px 0;margin-top:32px;border-radius: 10px;" />
+    <el-row style="background:#fff;padding:16px 16px 0;margin-top:32px;border-radius: 10px;">
+
+    </el-row>
   </div>
 </template>
 
 <script>
 export default {
-  name: 'Indexindex',
+  name: 'indexindex',
   data() {
     return {
       version: '',
@@ -140,9 +142,9 @@ export default {
       this.$router.push({ path: page })
     },
     gotoorder() {
-      var page = '/order/goods'
-      if (this.version == 'v3') {
-        page = '/order/service'
+      var page = '/order/goods';
+      if(this.version=='v3'){
+        page = '/order/service';
       }
 
       this.$router.push({ path: page })

+ 2 - 2
src/views/kefu/commonly/index.vue

@@ -35,17 +35,17 @@
 
     <div id="charts_one" style="width:100%;min-height:80vh">
       <el-table
-        ref="multipleTable"
         v-loading="loading"
+        ref="multipleTable"
         :row-class-name="rowClass"
         row-key="id"
         :header-cell-style="{ background: '#eef1f6', color: '#606266' }"
         :border="false"
         :stripe="true"
         class="eltable"
+        @selection-change="selection"
         :data="list"
         style="width: 100%"
-        @selection-change="selection"
       >
         <el-table-column align="center" type="selection" width="42" />
         <el-table-column align="center" type="" property="id" label="编号" show-overflow-tooltip width="70" />

+ 120 - 138
src/views/kefu/commonly/update.vue

@@ -1,147 +1,129 @@
 <template>
-  <div>
-    <el-dialog
-      :title="dialogtitle"
-      width="800px"
-      class="icon-dialog"
-      :visible.sync="show"
-      :before-close="closeForm"
-      append-to-body
-      @open="open"
-    >
-      <el-form
-        ref="form"
-        :size="size"
-        :model="form"
-        :rules="rules"
-        :label-width="$store.getters.device !== 'mobile'?'16%':'90px'"
-      >
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="内容" prop="content">
-              <el-input v-model="form.content" type="textarea" auto-complete="off" clearable placeholder="请输入内容" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="状态" prop="status">
-              <el-switch v-model="form.status" :active-value="1" :inactive-value="0" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="排序" prop="px">
-              <el-input-number
-                v-model="form.px"
-                controls-position="right"
-                style="width:200px;"
-                auto-complete="off"
-                clearable
-                :min="0"
-                placeholder="排序"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
+	<div>
+		<el-dialog :title="dialogtitle" width="800px" class="icon-dialog" :visible.sync="show" @open="open"
+			:before-close="closeForm" append-to-body>
+			<el-form :size="size" ref="form" :model="form" :rules="rules"
+				:label-width="$store.getters.device !== 'mobile'?'16%':'90px'">
+				<el-row>
+					<el-col :span="24">
+						<el-form-item label="内容" prop="content">
+							<el-input v-model="form.content" type="textarea" autoComplete="off" clearable placeholder="请输入内容">
+							</el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="24">
+						<el-form-item label="状态" prop="status">
+							<el-switch :active-value="1" :inactive-value="0" v-model="form.status"></el-switch>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-col :span="24">
+						<el-form-item label="排序" prop="px">
+							<el-input-number controls-position="right" style="width:200px;" autoComplete="off"
+								v-model="form.px" clearable :min="0" placeholder="排序" />
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button :loading="loading" type="primary" @click="submit">
-          <span v-if="!loading">确 定</span>
-          <span v-else>提 交 中...</span>
-        </el-button>
-        <el-button @click="closeForm">取 消</el-button>
+      	<el-button :loading="loading" type="primary" @click="submit">
+      		<span v-if="!loading">确 定</span>
+      		<span v-else>提 交 中...</span>
+      	</el-button>
+      	<el-button @click="closeForm">取 消</el-button>
       </div>
-    </el-dialog>
-  </div>
+		</el-dialog>
+	</div>
 </template>
 <script>
-import ImagesUpload from '@/components/common/ImagesUpload.vue'
-export default {
-  name: 'Update',
-  components: {
-    ImagesUpload
-  },
-  props: {
-    show: {
-      type: Boolean,
-      default: false
-    },
-    opentype: {
-      type: String,
-      default: 'add'
-    },
-    size: {
-      type: String,
-      default: 'small'
-    },
-    info: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      dialogtitle: '',
-      form: {
-        content: '',
-        status: 1
+  import ImagesUpload from '@/components/common/ImagesUpload.vue'
+	export default {
+		name: 'update',
+		components: {
+			ImagesUpload
+		},
+		props: {
+			show: {
+				type: Boolean,
+				default: false
+			},
+      opentype:{
+        type: String,
+        default: 'add'
       },
-      loading: false,
-      rules: {
-        content: [{
-          required: true,
-          message: '内容不能为空',
-          trigger: 'blur'
-        }]
-      }
-    }
-  },
-  watch: {
-    show(val) {
-    }
-  },
-  methods: {
-    open() {
-      if (this.opentype == 'update') {
-        this.dialogtitle = '修改'
-        this.form = this.info
-        if (this.info.pid == '0') {
+			size: {
+				type: String,
+				default: 'small'
+			},
+			info: {
+				type: Object,
+			},
+		},
+		data() {
+			return {
+        dialogtitle:'',
+				form: {
+					content: '',
+					status: 1,
+				},
+				loading: false,
+				rules: {
+					content: [{
+						required: true,
+						message: '内容不能为空',
+						trigger: 'blur'
+					}, ],
+				}
+			}
+		},
+		watch: {
+			show(val) {
+			}
+		},
+		methods: {
+			open() {
+        if(this.opentype=='update'){
+          this.dialogtitle = "修改";
+          this.form = this.info
+          if (this.info.pid == '0') {
           	this.$delete(this.info, 'pid')
+          }
+        }else{
+          this.dialogtitle = "添加";
+          this.form = {
+            type: 1,
+            status: 1,
+          };
+          //console.log(this.form);
         }
-      } else {
-        this.dialogtitle = '添加'
-        this.form = {
-          type: 1,
-          status: 1
-        }
-        // console.log(this.form);
-      }
-    },
-    submit() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.$api.post('/kefu.commonly/update', this.form).then(res => {
-            this.$message({
-              message: res.msg,
-              type: 'success'
-            })
-            this.$emit('refesh_list')
-            this.closeForm()
-          }).catch(() => {
-            this.loading = false
-          })
-        }
-      })
-    },
-    closeForm() {
-      this.$emit('update:show', false)
-      this.loading = false
-      if (this.$refs['form'] !== undefined) {
-        this.$refs['form'].resetFields()
-      }
-    }
-  }
-}
+			},
+			submit() {
+				this.$refs['form'].validate(valid => {
+					if (valid) {
+						this.loading = true
+						this.$api.post('/kefu.commonly/update', this.form).then(res => {
+								this.$message({
+									message: res.msg,
+									type: 'success'
+								})
+								this.$emit('refesh_list')
+								this.closeForm()
+						}).catch(() => {
+							this.loading = false
+						})
+					}
+				})
+			},
+			closeForm() {
+				this.$emit('update:show', false)
+				this.loading = false
+				if (this.$refs['form'] !== undefined) {
+					this.$refs['form'].resetFields()
+				}
+			},
+		}
+	}
 </script>

Некоторые файлы не были показаны из-за большого количества измененных файлов