瀏覽代碼

Merge remote-tracking branch 'origin/master'

“kiaimi 3 年之前
父節點
當前提交
fb5a97fdfd

+ 6 - 8
Jenkinsfile

@@ -161,20 +161,18 @@ pipeline {
     stage('Pre-Release') {
       steps {
         script {
-          if ("${_git_branch}" == 'master') {
-            echo "当前分支为:[${_git_branch}], 准备发布ing..."
-          } else {
-            error("当前分支为:[${_git_branch}], 终止当前发布操作...")
-          }
+          echo "当前分支为:[${_git_branch}], 准备发布ing..."
+//           if ("${_git_branch}" == 'master') {
+//             echo "当前分支为:[${_git_branch}], 准备发布ing..."
+//           } else {
+//             error("当前分支为:[${_git_branch}], 终止当前发布操作...")
+//           }
         }
       }
     }
     stage('Release') {
       parallel {
         stage('开发环境(47.97.230.53)') {
-          when {
-            branch 'master' // 仅在多分支Pipeline有效
-          }
           steps {
             script {
               echo '准备发布ing...'

+ 9 - 0
src/components/BaseTable.vue

@@ -51,6 +51,15 @@
                   }}
                 </el-tag>
               </span>
+              <span v-else-if="column.type === 'switch'">
+                <el-switch
+                  :value="scope.row[column.key]"
+                  :active-text="column.switchName[0]"
+                  :inactive-text="column.switchName[1]"
+                  @change="column.api(scope.row)"
+                >
+                </el-switch>
+              </span>
               <span v-else>{{ scope.row[column.key] || '-' }}</span>
             </template>
           </el-table-column>

+ 22 - 12
src/components/MultUpload.vue

@@ -78,6 +78,10 @@ export default {
     api: {
       type: Function,
       default: () => {}
+    },
+    error: {
+      type: String,
+      default: null
     }
   },
   data() {
@@ -129,7 +133,11 @@ export default {
       this.imgList.push(fileList);
     },
     submitUpload() {
-      if (this.imgList == 0) {
+      if (this.error) {
+        this.$error(this.error);
+        return false;
+      }
+      if (this.imgList.length == 0) {
         this.$error('未选择图片,请先选择图片');
         return false;
       }
@@ -144,19 +152,21 @@ export default {
         form.append('file', file.raw);
       });
 
-      this.api(form).then(({ success }) => {
-        if (success) {
-          this.mark = false;
-          this.$emit('finish');
-        } else {
+      this.api(form)
+        .then(({ success }) => {
+          if (success) {
+            this.mark = false;
+            this.$emit('finish');
+          } else {
+            this.$error('上传失败,请稍后重试...');
+            this.mark = false;
+          }
+        })
+        .catch(err => {
+          console.error(err);
           this.$error('上传失败,请稍后重试...');
           this.mark = false;
-        }
-      }).catch(err => {
-        console.error(err);
-        this.$error('上传失败,请稍后重试...');
-        this.mark = false;
-      });
+        });
     },
     handlePictureCardPreview(file) {
       this.dialogImageUrl = file.url;

+ 33 - 1
src/components/Upload.vue

@@ -12,6 +12,7 @@
       :on-success="handleAvatarSuccess"
       :on-error="handleError"
       :on-progress="onProgress"
+      :before-upload="handleBeforeUpload"
       :disabled="limit <= value.length"
     >
       <i slot="default" class="el-icon-plus" />
@@ -41,6 +42,19 @@
         </span>
       </div>
     </el-upload>
+    <template v-if="config">
+      图片长宽比为
+      <b style="color: #f56c6c">{{ config[0] }}:{{ config[1] }}</b>
+    </template>
+    <!--         <template v-if="fileSize">
+          大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
+        </template> -->
+
+    <template v-if="limit">
+      最多上传 <b style="color: #f56c6c">{{ limit }}</b
+      >张
+    </template>
+
     <el-dialog :visible.sync="dialogVisible" :modal="false">
       <img width="100%" :src="dialogImageUrl" alt="" />
     </el-dialog>
@@ -61,6 +75,11 @@ export default {
       type: Array,
       default: () => []
     },
+
+    config: {
+      type: Array,
+      default: null
+    },
     limit: {
       type: Number,
       default: 1
@@ -86,7 +105,9 @@ export default {
         token: getToken()
       },
       imgList: this.value,
-      tmp: []
+      tmp: [],
+
+      loading: null
     };
   },
 
@@ -125,6 +146,7 @@ export default {
     handleError() {
       this.mark = false;
       this.$error('上传失败,请稍后重试...');
+      this.loading.close();
     },
     handleAvatarSuccess(res, file, fileList) {
       if (file.response.code !== 200) {
@@ -143,7 +165,9 @@ export default {
           : [];
       this.$nextTick(() => {
         this.$emit('input', result);
+        this.$message.success('上传成功');
         this.mark = false;
+        this.loading.close();
       });
     },
     // handleChange(file, fileList) {
@@ -168,6 +192,14 @@ export default {
     handlePictureCardPreview(file) {
       this.dialogImageUrl = file.url;
       this.dialogVisible = true;
+    },
+    handleBeforeUpload() {
+      this.loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
     }
   }
 };

+ 1 - 0
src/containers/sceneSelect/SceneSelect.vue

@@ -4,6 +4,7 @@
     placeholder="请选择"
     filterable
     clearable
+    v-bind="$attrs"
     @change="onChange"
   >
     <el-option

+ 121 - 78
src/router/index.js

@@ -60,6 +60,20 @@ export const constantRoutes = [
     ]
   },
 
+  // 404 page must be placed at the end !!!
+  {
+    path: '*',
+    redirect: '/404',
+    hidden: true
+  }
+];
+
+// TODO 上方菜单搬运下方,在meta追加roles
+/**
+ * asyncRoutes
+ * the routes that need to be dynamically loaded based on user roles
+ */
+export const asyncRoutes = [
   {
     path: '/statistics',
     component: Layout,
@@ -67,7 +81,8 @@ export const constantRoutes = [
     name: '数据统计',
     meta: {
       title: '数据统计',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'operate']
     },
     children: [
       {
@@ -75,8 +90,9 @@ export const constantRoutes = [
         name: '下载照片',
         component: () => import('@/views/statistics/downloadImage/index'),
         meta: {
-          title: '下载照片'
+          title: '下载照片',
           // icon: 'table'
+          roles: ['admin', 'operate']
         }
       },
       {
@@ -84,8 +100,9 @@ export const constantRoutes = [
         name: '上传照片',
         component: () => import('@/views/statistics/uploadImage/index'),
         meta: {
-          title: '上传照片'
+          title: '上传照片',
           // icon: 'tree'
+          roles: ['admin', 'operate']
         }
       },
       {
@@ -93,8 +110,9 @@ export const constantRoutes = [
         name: '提现记录',
         component: () => import('@/views/statistics/withdrawalRecord/index'),
         meta: {
-          title: '提现记录'
+          title: '提现记录',
           // icon: 'tree'
+          roles: ['admin', 'operate']
         }
       }
     ]
@@ -107,16 +125,19 @@ export const constantRoutes = [
     name: '摄影师',
     meta: {
       title: '摄影师',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'photoer', 'photoer_management']
     },
     children: [
       {
         path: 'PhotoVerify',
         name: '摄影师', // add by 梁展鹏 20210723 因为只有一个菜单,所以暂时把菜单名称写到这里。实际上这里是"照片管理"
-        component: () => import('@/views/photographerManagement/photoVerify/index'),
+        component: () =>
+        import('@/views/photographerManagement/photoVerify/index'),
         meta: {
-          title: '摄影师'
-          // icon: 'tree'
+          title: '摄影师',
+          // icon: 'tree',
+          roles: ['admin', 'photoer', 'photoer_management']
         }
       }
     ]
@@ -129,7 +150,8 @@ export const constantRoutes = [
     name: '图片库管理',
     meta: {
       title: '图片库管理',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'photo_management', 'photoer_management']
     },
     children: [
       {
@@ -137,26 +159,31 @@ export const constantRoutes = [
         name: '活动列表',
         component: () => import('@/views/photoManagement/eventsList/index'),
         meta: {
-          title: '活动列表'
-          // icon: 'tree'
+          title: '活动列表',
+          // icon: 'tree',
+          roles: ['admin', 'photoer_management']
         }
       },
       {
         path: 'ImageGoodsManagement',
         name: '照片商品管理',
-        component: () => import('@/views/photoManagement/imageGoodsManagement/index'),
+        component: () =>
+        import('@/views/photoManagement/imageGoodsManagement/index'),
         meta: {
-          title: '照片商品管理'
-          // icon: 'table'
+          title: '照片商品管理',
+          // icon: 'table',
+          roles: ['admin', 'photo_management']
         }
       },
       {
         path: 'PhotoVerifyManagement',
         name: '上传照片审核',
-        component: () => import('@/views/photoManagement/photoVerifyManagement/index'),
+        component: () =>
+        import('@/views/photoManagement/photoVerifyManagement/index'),
         meta: {
-          title: '上传照片审核'
-          // icon: 'tree'
+          title: '上传照片审核',
+          // icon: 'tree',
+          roles: ['admin', 'photoer_management']
         }
       }
     ]
@@ -169,16 +196,19 @@ export const constantRoutes = [
     name: '认证管理',
     meta: {
       title: '认证管理',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'photoer_management', 'business']
     },
     children: [
       {
         path: 'PhotographerVerify',
         name: '摄影师认证审核',
-        component: () => import('@/views/photographerManagement/photographerVerify/index'),
+        component: () =>
+        import('@/views/photographerManagement/photographerVerify/index'),
         meta: {
-          title: '摄影师认证审核'
-          // icon: 'table'
+          title: '摄影师认证审核',
+          // icon: 'table',
+          roles: ['admin', 'photoer_management']
         }
       },
       {
@@ -186,8 +216,9 @@ export const constantRoutes = [
         name: '场景审核',
         component: () => import('@/views/sceneManagement/sceneVerify/index'),
         meta: {
-          title: '场景审核'
-          // icon: 'tree'
+          title: '场景审核',
+          // icon: 'tree',
+          roles: ['admin', 'business']
         }
       },
       {
@@ -195,8 +226,9 @@ export const constantRoutes = [
         name: '场景列表',
         component: () => import('@/views/sceneManagement/sceneList/index'),
         meta: {
-          title: '场景列表'
-          // icon: 'table'
+          title: '场景列表',
+          // icon: 'table',
+          roles: ['admin', 'business']
         }
       }
     ]
@@ -209,7 +241,8 @@ export const constantRoutes = [
     name: '会员管理',
     meta: {
       title: '会员管理',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'operate']
     },
     children: [
       {
@@ -217,8 +250,9 @@ export const constantRoutes = [
         name: '会员等级',
         component: () => import('@/views/memberManagement/memberLever/index'),
         meta: {
-          title: '会员等级'
-          // icon: 'table'
+          title: '会员等级',
+          // icon: 'table',
+          roles: ['admin', 'operate']
         }
       },
       {
@@ -226,8 +260,9 @@ export const constantRoutes = [
         name: '会员列表',
         component: () => import('@/views/memberManagement/memberList/index'),
         meta: {
-          title: '会员列表'
-          // icon: 'tree'
+          title: '会员列表',
+          // icon: 'tree',
+          roles: ['admin', 'operate']
         }
       }
     ]
@@ -240,16 +275,19 @@ export const constantRoutes = [
     name: '财务管理',
     meta: {
       title: '财务管理',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'finance']
     },
     children: [
       {
         path: 'OrderManagement',
         name: '订单列表',
-        component: () => import('@/views/financialManagement/orderManagement/index'),
+        component: () =>
+        import('@/views/financialManagement/orderManagement/index'),
         meta: {
-          title: '订单列表'
-          // icon: 'table'
+          title: '订单列表',
+          // icon: 'table',
+          roles: ['admin', 'finance']
         }
       },
       {
@@ -257,8 +295,9 @@ export const constantRoutes = [
         name: '用户资金明细',
         component: () => import('@/views/financialManagement/cashDetail/index'),
         meta: {
-          title: '用户资金明细'
-          // icon: 'tree'
+          title: '用户资金明细',
+          // icon: 'tree',
+          roles: ['admin', 'finance']
         }
       },
       {
@@ -266,8 +305,9 @@ export const constantRoutes = [
         name: '积分设置',
         component: () => import('@/views/pointsManagement/pointsSetting/index'),
         meta: {
-          title: '积分设置'
-          // icon: 'tree'
+          title: '积分设置',
+          // icon: 'tree',
+          roles: ['admin', 'finance']
         }
       }
     ]
@@ -280,7 +320,8 @@ export const constantRoutes = [
     name: '积分管理',
     meta: {
       title: '积分管理',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin']
     },
     children: [
       {
@@ -288,8 +329,9 @@ export const constantRoutes = [
         name: '积分明细',
         component: () => import('@/views/pointsManagement/pointsDetail/index'),
         meta: {
-          title: '积分明细'
-          // icon: 'table'
+          title: '积分明细',
+          // icon: 'table',
+          roles: ['admin']
         }
       }
     ]
@@ -302,7 +344,8 @@ export const constantRoutes = [
     name: '基础管理',
     meta: {
       title: '基础管理',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'operate', 'designer']
     },
     children: [
       {
@@ -310,17 +353,20 @@ export const constantRoutes = [
         name: '热搜词管理',
         component: () => import('@/views/baseManagement/trending/index'),
         meta: {
-          title: '热搜词管理'
-          // icon: 'tree'
+          title: '热搜词管理',
+          // icon: 'tree',
+          roles: ['admin', 'operate']
         }
       },
       {
         path: 'BannerManagement',
         name: 'Banner管理',
-        component: () => import('@/views/baseManagement/bannerManagement/index'),
+        component: () =>
+        import('@/views/baseManagement/bannerManagement/index'),
         meta: {
-          title: 'Banner管理'
-          // icon: 'table'
+          title: 'Banner管理',
+          // icon: 'table',
+          roles: ['admin', 'designer']
         }
       },
       {
@@ -328,17 +374,20 @@ export const constantRoutes = [
         name: '资讯管理',
         component: () => import('@/views/baseManagement/infoManagement/index'),
         meta: {
-          title: '资讯管理'
-          // icon: 'tree'
+          title: '资讯管理',
+          // icon: 'tree',
+          roles: ['admin', 'operate']
         }
       },
       {
         path: 'ProblemFeedbackManagement',
         name: '问题管理',
-        component: () => import('@/views/baseManagement/problemFeedbackManagement/index'),
+        component: () =>
+        import('@/views/baseManagement/problemFeedbackManagement/index'),
         meta: {
-          title: '问题管理'
-          // icon: 'tree'
+          title: '问题管理',
+          // icon: 'tree',
+          roles: ['admin', 'operate']
         }
       }
     ]
@@ -351,25 +400,30 @@ export const constantRoutes = [
     name: '系统管理',
     meta: {
       title: '系统管理',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin']
     },
     children: [
       {
         path: 'AccountManagement',
         name: '账号列表',
-        component: () => import('@/views/systemManagement/accountManagement/index'),
+        component: () =>
+        import('@/views/systemManagement/accountManagement/index'),
         meta: {
-          title: '账号列表'
-          // icon: 'table'
+          title: '账号列表',
+          // icon: 'table',
+          roles: ['admin']
         }
       },
       {
         path: 'RoleManagement',
         name: '角色列表',
-        component: () => import('@/views/systemManagement/roleManagement/index'),
+        component: () =>
+        import('@/views/systemManagement/roleManagement/index'),
         meta: {
-          title: '角色列表'
-          // icon: 'tree'
+          title: '角色列表',
+          // icon: 'tree',
+          roles: ['admin']
         }
       }
     ]
@@ -382,7 +436,8 @@ export const constantRoutes = [
     name: '帮助信息',
     meta: {
       title: '帮助信息',
-      icon: 'el-icon-s-help'
+      icon: 'el-icon-s-help',
+      roles: ['admin', 'operate']
     },
     children: [
       {
@@ -390,8 +445,9 @@ export const constantRoutes = [
         name: '问题分类',
         component: () => import('@/views/helpInfo/issueType/index'),
         meta: {
-          title: '问题分类'
-          // icon: 'table'
+          title: '问题分类',
+          // icon: 'table',
+          roles: ['admin', 'operate']
         }
       },
       {
@@ -399,28 +455,15 @@ export const constantRoutes = [
         name: '信息内容',
         component: () => import('@/views/helpInfo/information/index'),
         meta: {
-          title: '信息内容'
-          // icon: 'tree'
+          title: '信息内容',
+          // icon: 'tree',
+          roles: ['admin', 'operate']
         }
       }
     ]
-  },
-
-  // 404 page must be placed at the end !!!
-  {
-    path: '*',
-    redirect: '/404',
-    hidden: true
   }
 ];
 
-/**
- * asyncRoutes
- * the routes that need to be dynamically loaded based on user roles
- */
-export const asyncRoutes = [
-];
-
 const createRouter = () =>
   new Router({
     // mode: 'history', // require service support

+ 4 - 1
src/store/modules/permission.js

@@ -48,8 +48,11 @@ const mutations = {
 
 const actions = {
   generateRoutes({ commit }, roles) {
+    console.error(roles);
     return new Promise(resolve => {
-      let accessedRoutes = asyncRoutes;
+      // let accessedRoutes = asyncRoutes;
+      let accessedRoutes = filterAsyncRoutes(asyncRoutes, roles);
+
       // commit('SET_ROUTES', []);
       commit('SET_ROUTES', accessedRoutes);
       resolve(accessedRoutes);

+ 1 - 0
src/utils/request.js

@@ -49,6 +49,7 @@ axios.interceptors.response.use(
     const res = response.data;
     if (res.code === 401) {
       setToken();
+      // 045 登录态失效,重定向到登录页 更改地址
       // location.replace(`http://wxhd.lifespaceprobiotics.cn/code/admin/#/login`);
 
       Message({

+ 6 - 1
src/views/baseManagement/bannerManagement/modal/ItemModal.vue

@@ -12,7 +12,12 @@
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="100px">
       <el-form-item label="图片" prop="imgUrl">
-        <upload v-model="form.imgUrl" params="prefix=/banner" />
+        <!-- TODO 043 -->
+        <upload
+          v-model="form.imgUrl"
+          :config="[1, 1]"
+          params="prefix=/banner"
+        />
       </el-form-item>
       <el-form-item label="位置" prop="type">
         <DataSelect

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

@@ -107,8 +107,8 @@ export default {
     };
     return {
       loginForm: {
-        phone: '13450765204',
-        code: '000000'
+        phone: '',
+        code: ''
       },
       loginRules: {
         phone: [{ required: true, trigger: 'blur', validator: validatePhone }],

+ 35 - 11
src/views/photoManagement/eventsList/modal/ItemModal.vue

@@ -116,10 +116,23 @@ export default {
         sort: 1
       },
       rules: {
-        name: [{ required: true, message: '请输入活动名称', trigger: 'change' }],
-        cover: [{ type: 'array', required: true, message: '请上传图片', trigger: 'change'  }],
-        brief: [{ required: true, message: '请输入活动介绍', trigger: 'change' }],
-        kindergartenId: [{ required: true, message: '请选择场景', trigger: 'change' }],
+        name: [
+          { required: true, message: '请输入活动名称', trigger: 'change' }
+        ],
+        cover: [
+          {
+            type: 'array',
+            required: true,
+            message: '请上传图片',
+            trigger: 'change'
+          }
+        ],
+        brief: [
+          { required: true, message: '请输入活动介绍', trigger: 'change' }
+        ],
+        kindergartenId: [
+          { required: true, message: '请选择场景', trigger: 'change' }
+        ],
         eventTimeArr: [{ validator: validateTimer, trigger: 'blur' }]
       },
 
@@ -158,25 +171,36 @@ export default {
 
       if (success) {
         let result = data;
-        result.cover = data.cover && [{ url: data.cover }];
-        result.previewLogo = data.previewLogo && [{ url: data.previewLogo }];
-        result.hdLogo = data.hdLogo && [{ url: data.hdLogo }];
+        result.cover = data.cover ? [{ url: data.cover }] : [];
+        result.previewLogo = data.previewLogo
+          ? [{ url: data.previewLogo }]
+          : [];
+        result.hdLogo = data.hdLogo ? [{ url: data.hdLogo }] : [];
         result.eventTimeArr = [result.eventStartDate, result.eventEndDate];
         this.form = result;
       }
     },
 
     handleConfirm() {
-      let _that = this
+      let _that = this;
       _that.$refs.form.validate(async valid => {
         if (!valid) {
           return false;
         }
 
         let params = Object.assign({}, _that.form);
-        params.cover = (_that.form.cover && _that.form.cover.length > 0) && _that.form.cover[0].url;
-        params.previewLogo = (_that.form.previewLogo && _that.form.previewLogo.length > 0) && _that.form.previewLogo[0].url;
-        params.hdLogo = (_that.form.hdLogo && _that.form.hdLogo.length > 0) && _that.form.hdLogo[0].url;
+        params.cover =
+          _that.form.cover &&
+          _that.form.cover.length > 0 &&
+          _that.form.cover[0].url;
+        params.previewLogo =
+          _that.form.previewLogo &&
+          _that.form.previewLogo.length > 0 &&
+          _that.form.previewLogo[0].url;
+        params.hdLogo =
+          _that.form.hdLogo &&
+          _that.form.hdLogo.length > 0 &&
+          _that.form.hdLogo[0].url;
         params.eventStartDate = _that.form.eventTimeArr[0];
         params.eventEndDate = _that.form.eventTimeArr[1];
 

+ 37 - 9
src/views/photoManagement/imageGoodsManagement/index.vue

@@ -15,7 +15,7 @@
 <script>
 import toolbar from './toolbar';
 import mxFilterList from '@/mixins/filterList';
-import { getPage, delItem } from '@/api/photoWarehouse';
+import { getPage, delItem, updateItem } from '@/api/photoWarehouse';
 
 export default {
   name: 'ImageGoodsManagement',
@@ -35,6 +35,11 @@ export default {
     return {
       columns: [
         {
+          key: 'id',
+          name: '标识',
+          width: this.$col.m
+        },
+        {
           key: 'location',
           name: '上传位置',
           minWidth: this.$col.b,
@@ -116,10 +121,21 @@ export default {
         {
           key: 'isBeautiful',
           name: '精选',
-          width: this.$col.s,
-          type: 'tag',
-          fetchTagType: val => (val ? 'success' : 'info'),
-          tagName: row => (row.isBeautiful ? '是' : '否')
+          width: this.$col.m,
+          type: 'switch',
+          switchName: ['是', '否'],
+          api: async row => {
+            console.log(row);
+            row.isBeautiful = !row.isBeautiful;
+            const { success } = await updateItem(row);
+            if (success) {
+              this.$success('修改成功!');
+            }
+            this.$g_emit('photo_reload');
+          }
+          // type: 'tag',
+          // fetchTagType: val => (val ? 'success' : 'info'),
+          // tagName: row => (row.isBeautiful ? '是' : '否')
         },
         {
           key: 'isTake',
@@ -132,10 +148,22 @@ export default {
         {
           key: 'isShow',
           name: '状态',
-          width: this.$col.s,
-          type: 'tag',
-          fetchTagType: val => (val ? 'success' : 'info'),
-          tagName: row => (row.isShow ? '上架' : '下架')
+          width: this.$col.b,
+          type: 'switch',
+          switchName: ['上架', '下架'],
+          api: async row => {
+            console.log(row);
+            row.isShow = !row.isShow;
+            const { success } = await updateItem(row);
+            if (success) {
+              this.$success('修改成功!');
+            }
+            this.$g_emit('photo_reload');
+          }
+          // width: this.$col.s,
+          // type: 'tag',
+          // fetchTagType: val => (val ? 'success' : 'info'),
+          // tagName: row => (row.isShow ? '上架' : '下架')
         },
         {
           key: 'action',

+ 10 - 2
src/views/photoManagement/imageGoodsManagement/modal/ItemModal.vue

@@ -101,13 +101,21 @@ export default {
       form: {
         isShow: false,
         isBeautiful: false,
-        originPhotoPrice: 0,
-        hdLogoPhotoPrice: 0
+        hdLogoPhotoOriginPrice: 0,
+        hdLogoPhotoPrice: 0,
+        originPhotoOriginPrice: 0,
+        originPhotoPrice: 0
       },
       rules: {
+        originPhotoOriginPrice: [
+          { required: true, message: '请输入正确的价格', trigger: 'blur' }
+        ],
         originPhotoPrice: [
           { required: true, message: '请输入正确的价格', trigger: 'blur' }
         ],
+        hdLogoPhotoOriginPrice: [
+          { required: true, message: '请输入正确的价格', trigger: 'blur' }
+        ],
         hdLogoPhotoPrice: [
           { required: true, message: '请输入正确的价格', trigger: 'blur' }
         ]

+ 6 - 1
src/views/photoManagement/photoVerifyManagement/index.vue

@@ -88,6 +88,11 @@ export default {
         {
           key: 'selection',
         },
+         {
+          key: 'id',
+          name: '标识',
+          width: this.$col.m
+        },
         {
           key: 'location',
           name: '上传位置',
@@ -100,7 +105,7 @@ export default {
               }`
             )
         },
-        
+
         {
           key: 'listPreview',
           name: '列表缩略图',

+ 8 - 3
src/views/photographerManagement/photoVerify/index.vue

@@ -3,14 +3,14 @@
     <toolbar @on-filter="filterData" @on-reset="filterData" />
 
     <div class="m-10 bg-w p-20 br-10">
-      <el-button type="primary" icon="el-icon-plus" @click="$PhotoUploadModal()"
+      <!-- <el-button type="primary" icon="el-icon-plus" @click="$PhotoUploadModal()"
         >新增</el-button
-      >
+      > -->
       <el-button
         type="primary"
         icon="el-icon-plus"
         @click="$PhotoMultUploadModal()"
-        >批量新增</el-button
+        >批量上传照片</el-button
       >
 
       <base-table
@@ -43,6 +43,11 @@ export default {
     return {
       columns: [
         {
+          key: 'id',
+          name: '标识',
+          width: this.$col.m
+        },
+        {
           key: 'location',
           name: '上传位置',
           minWidth: this.$col.b,

+ 28 - 18
src/views/photographerManagement/photoVerify/modal/MultItemModal.vue

@@ -11,24 +11,24 @@
     "
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-      <el-steps class="mrow-40 pb-40" :space="200" :active="step">
+      <!-- <el-steps class="mrow-40 pb-40" :space="200" :active="step">
         <el-step title="关联信息"></el-step>
         <el-step title="批量上传"></el-step>
-      </el-steps>
+      </el-steps> -->
 
-      <div v-if="step === 0">
-        <el-form-item label="关联场景" prop="kindergartenId">
-          <SceneSelect v-model="form.kindergartenId" />
-        </el-form-item>
-        <el-form-item label="关联活动">
-          <ActivitySelect
-            v-model="form.activityId"
-            :kindergartenId="form.kindergartenId"
-            :firstLoad="false"
-            :disabled="form.kindergartenId === null"
-          />
-        </el-form-item>
-        <div class="f-fe-fs" :style="{ width: '50%' }">
+      <!-- <div v-if="step === 0"> -->
+      <el-form-item label="关联场景" prop="kindergartenId">
+        <SceneSelect v-model="form.kindergartenId" :clearable="false" />
+      </el-form-item>
+      <el-form-item label="关联活动">
+        <ActivitySelect
+          v-model="form.activityId"
+          :kindergartenId="form.kindergartenId"
+          :firstLoad="false"
+          :disabled="form.kindergartenId === null"
+        />
+      </el-form-item>
+      <!-- <div class="f-fe-fs" :style="{ width: '50%' }">
           <el-button
             type="primary"
             round
@@ -36,13 +36,14 @@
             @click="step++"
             >下一步</el-button
           >
-        </div>
-      </div>
-      <el-form-item v-show="step === 1" label="图片" prop="urls" required>
+        </div> -->
+      <!-- </div> -->
+      <el-form-item label="图片" prop="urls" required>
         <mult-upload
           v-model="form.urls"
           :api="multUpload"
           :limit="999"
+          :error="errorMsg"
           :paramsData="uploadParams"
           @finish="handleFinish"
         />
@@ -93,6 +94,15 @@ export default {
     uploadParams() {
       const { kindergartenId, activityId } = this.form;
       return { kindergartenId, activityId };
+    },
+
+    errorMsg() {
+      const { kindergartenId } = this.form;
+      if (kindergartenId) {
+        return null;
+      } else {
+        return '请先选择关联场景';
+      }
     }
   },
 

+ 49 - 8
src/views/pointsManagement/pointsSetting/index.vue

@@ -7,31 +7,33 @@
         <el-form-item label="积分抵现(设置多少积分抵一元人民币)">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_CASH_OUT" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
-
+        <el-form-item label="注册获得积分">
+          <el-input-number controls-position="right" v-model="form.INTEGRAL_TO_SIGN_UP" style="width: 100%;" :min="0"></el-input-number>
+        </el-form-item>
         <el-form-item label="邀请好友注册获得积分">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_INVITE_TO_SIGN_UP" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
-
+        <el-form-item label="分享获得积分每天限额次数">
+          <el-input-number controls-position="right" v-model="form.INTEGRAL_SHARE_TIME_BY_DAY" style="width: 100%;" :min="0"></el-input-number>
+        </el-form-item>
         <el-form-item label="分享资讯获得积分">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_SHARE_POINTS" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
-
+        <el-form-item label="点赞照片获得积分每天限额次数">
+          <el-input-number controls-position="right" v-model="form.INTEGRAL_LIKE_TO_POINTS_TIME_BY_DAY" style="width: 100%;" :min="0"></el-input-number>
+        </el-form-item>
         <el-form-item label="点赞照片获得积分">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_LIKE_TO_POINTS" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
-
         <el-form-item label="被点赞照片获得积分">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_POINTS_BY_LIKE" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
-
         <el-form-item label="每日签到获得积分">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_SIGN_IN_BY_DAY" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
-
         <el-form-item label="连续签到天数">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_SIGN_IN_BY_EVERY_DAY" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
-
         <el-form-item label="连续签到获得积分">
           <el-input-number controls-position="right" v-model="form.INTEGRAL_SIGN_IN_BY_EVERY_DAY_POINTS" style="width: 100%;" :min="0"></el-input-number>
         </el-form-item>
@@ -42,9 +44,27 @@
         <el-form-item label="照片购买摄影师分成(%)">
           <el-input-number controls-position="right" v-model="form.CASH_PHOTOER_INCOME" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
         </el-form-item>
+        <el-form-item label="购买随手拍高清图统一原价格">
+          <el-input-number controls-position="right" v-model="form.CASH_TASK_HD_LOGO_PHOTO_ORIGIN_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
+        </el-form-item>
+        <el-form-item label="购买随手拍高清图统一价格">
+          <el-input-number controls-position="right" v-model="form.CASH_TASK_HD_LOGO_PHOTO_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
+        </el-form-item>
+        <el-form-item label="购买随手拍原图统一原价格">
+          <el-input-number controls-position="right" v-model="form.CASH_TASK_ORIGIN_PHOTO_ORIGIN_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
+        </el-form-item>
+        <el-form-item label="购买随手拍原图统一价格">
+          <el-input-number controls-position="right" v-model="form.CASH_TASK_ORIGIN_PHOTO_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
+        </el-form-item>
+        <el-form-item label="购买高清图统一原价格">
+          <el-input-number controls-position="right" v-model="form.CASH_HD_LOGO_PHOTO_ORIGIN_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
+        </el-form-item>
         <el-form-item label="购买高清图统一价格">
           <el-input-number controls-position="right" v-model="form.CASH_HD_LOGO_PHOTO_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
         </el-form-item>
+        <el-form-item label="购买原图统一原价格">
+          <el-input-number controls-position="right" v-model="form.CASH_ORIGIN_PHOTO_ORIGIN_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
+        </el-form-item>
         <el-form-item label="购买原图统一价格">
           <el-input-number controls-position="right" v-model="form.CASH_ORIGIN_PHOTO_PRICE" style="width: 100%;" :precision="2" :step="0.1" :min="0"></el-input-number>
         </el-form-item>
@@ -59,6 +79,9 @@
           <el-input v-model="form.BUSINESS_TAKE_COUNT" placeholder="请输入"></el-input>
         </el-form-item>
 
+
+
+        <el-divider content-position="left"></el-divider>
         <el-form-item class="f-fe-c">
           <el-button type="primary" @click="onSubmit">保存</el-button>
         </el-form-item>
@@ -79,8 +102,11 @@ export default {
     return {
       form: {
         INTEGRAL_CASH_OUT: 0,
+        INTEGRAL_TO_SIGN_UP: 0,
         INTEGRAL_INVITE_TO_SIGN_UP: 0,
+        INTEGRAL_SHARE_TIME_BY_DAY: 0,
         INTEGRAL_SHARE_POINTS: 0,
+        INTEGRAL_LIKE_TO_POINTS_TIME_BY_DAY: 0,
         INTEGRAL_LIKE_TO_POINTS: 0,
         INTEGRAL_POINTS_BY_LIKE: 0,
         INTEGRAL_SIGN_IN_BY_DAY: 0,
@@ -88,7 +114,13 @@ export default {
         INTEGRAL_SIGN_IN_BY_EVERY_DAY_POINTS: 0,
 
         CASH_PHOTOER_INCOME: 0,
-        CASH_HD_LOGO_PHOTO_PRICE: 0,
+        CASH_TASK_HD_LOGO_PHOTO_ORIGIN_PRICE: 0,
+        CASH_TASK_ORIGIN_PHOTO_PRICE: 0,
+        CASH_TASK_HD_LOGO_PHOTO_ORIGIN_PRICE: 0,
+        CASH_TASK_ORIGIN_PHOTO_PRICE: 0,
+        CASH_HD_LOGO_PHOTO_ORIGIN_PRICE: 0,
+        CASH_ORIGIN_PHOTO_PRICE: 0,
+        CASH_HD_LOGO_PHOTO_ORIGIN_PRICE: 0,
         CASH_ORIGIN_PHOTO_PRICE: 0,
 
         BUSINESS_H5_WEB_DOMAIN: '',
@@ -96,8 +128,11 @@ export default {
       },
       rules: {
         INTEGRAL_CASH_OUT: [{ required: true, message: '请输入', trigger: 'blur' }],
+        INTEGRAL_TO_SIGN_UP: [{ required: true, message: '请输入', trigger: 'blur' }],
         INTEGRAL_INVITE_TO_SIGN_UP: [ { required: true, message: '请输入', trigger: 'blur' }],
+        INTEGRAL_SHARE_TIME_BY_DAY: [ { required: true, message: '请输入', trigger: 'blur' }],
         INTEGRAL_SHARE_POINTS: [{ required: true, message: '请输入', trigger: 'blur' }],
+        INTEGRAL_LIKE_TO_POINTS_TIME_BY_DAY: [{ required: true, message: '请输入', trigger: 'blur' }],
         INTEGRAL_LIKE_TO_POINTS: [{ required: true, message: '请输入', trigger: 'blur' }],
         INTEGRAL_POINTS_BY_LIKE: [{ required: true, message: '请输入', trigger: 'blur' }],
         INTEGRAL_SIGN_IN_BY_DAY: [{ required: true, message: '请输入', trigger: 'blur' }],
@@ -105,7 +140,13 @@ export default {
         INTEGRAL_SIGN_IN_BY_EVERY_DAY_POINTS: [{ required: true, message: '请输入', trigger: 'blur' }],
 
         CASH_PHOTOER_INCOME: [{ required: true, message: '请输入', trigger: 'blur' }],
+        CASH_TASK_HD_LOGO_PHOTO_ORIGIN_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
+        CASH_TASK_HD_LOGO_PHOTO_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
+        CASH_TASK_ORIGIN_PHOTO_ORIGIN_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
+        CASH_TASK_ORIGIN_PHOTO_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
+        CASH_HD_LOGO_PHOTO_ORIGIN_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
         CASH_HD_LOGO_PHOTO_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
+        CASH_ORIGIN_PHOTO_ORIGIN_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
         CASH_ORIGIN_PHOTO_PRICE: [{ required: true, message: '请输入', trigger: 'blur' }],
 
         BUSINESS_H5_WEB_DOMAIN: [{ required: true, message: '请输入', trigger: 'blur' }],

+ 6 - 1
src/views/sceneManagement/sceneList/modal/ItemModal.vue

@@ -33,7 +33,12 @@
         <el-input v-model="form.address" placeholder="请输入详细地址" />
       </el-form-item>
       <el-form-item label="幼儿园logo" prop="logo" required>
-        <upload v-model="form.logo" params="prefix=/kindergarten" />
+        <!-- TODO 043 -->
+        <upload
+          v-model="form.logo"
+          :config="[1, 1]"
+          params="prefix=/kindergarten"
+        />
       </el-form-item>
       <el-form-item label="幼儿园预览图logo" prop="previewLogo" required>
         <upload v-model="form.previewLogo" params="prefix=/kindergarten" />