joway 2 سال پیش
والد
کامیت
000bad4eee
40فایلهای تغییر یافته به همراه535 افزوده شده و 958 حذف شده
  1. 2 2
      .env.development
  2. 16 31
      .env.production
  3. 9 7
      .env.staging
  4. 3 1
      .eslintrc.js
  5. BIN
      public/favicon.ico
  6. 7 0
      src/App.vue
  7. 9 0
      src/api/ad.js
  8. 7 0
      src/api/article.js
  9. 145 119
      src/components/FilterUser.vue
  10. 3 0
      src/components/LangSelect/index.vue
  11. 35 7
      src/lang/en.js
  12. 34 8
      src/lang/zh.js
  13. 4 5
      src/layout/components/Navbar.vue
  14. 8 31
      src/router/index.js
  15. 4 2
      src/utils/index.js
  16. 6 3
      src/views/ad/edit.vue
  17. 14 5
      src/views/ad/list.vue
  18. 8 7
      src/views/admin/index.vue
  19. 8 7
      src/views/admin/role.vue
  20. 54 0
      src/views/article/detail.vue
  21. 62 58
      src/views/bonus/period.vue
  22. 1 1
      src/views/dashboard/admin/index.vue
  23. 0 291
      src/views/example/components/ArticleDetail.vue
  24. 0 41
      src/views/example/components/Dropdown/Comment.vue
  25. 0 46
      src/views/example/components/Dropdown/Platform.vue
  26. 0 38
      src/views/example/components/Dropdown/SourceUrl.vue
  27. 0 3
      src/views/example/components/Dropdown/index.js
  28. 0 10
      src/views/example/components/Warning.vue
  29. 0 13
      src/views/example/create.vue
  30. 0 13
      src/views/example/edit.vue
  31. 0 112
      src/views/example/list.vue
  32. 2 2
      src/views/file/export.vue
  33. 16 17
      src/views/finance/balance-audit-list.vue
  34. 1 0
      src/views/finance/change-balance-opt.vue
  35. 16 16
      src/views/finance/withdraw.vue
  36. 32 27
      src/views/shop/index.vue
  37. 13 13
      src/views/shop/order-list.vue
  38. 4 2
      src/views/user/member-list.vue
  39. 7 15
      src/views/user/member-network-move.vue
  40. 5 5
      vue.config.js

+ 2 - 2
.env.development

@@ -2,11 +2,11 @@
 ENV='development'
 
 # api请求地址
-VUE_APP_BASE_API='http://172.17.45.3:9970'
+VUE_APP_BASE_API=''
 # 文件下载地址
 VUE_APP_BASE_DO_API='http://local.ng.backend.api.com'
 # CDN文件地址
-VUE_APP_CDN_API='http://172.17.45.3:9970'
+VUE_APP_CDN_API='http://192.168.31.236:81'
 # 页面地址
 VUE_APP_BASE_WEBSITE='http://local.ng.backend.ele.com'
 # 会员端地址

+ 16 - 31
.env.production

@@ -1,34 +1,19 @@
 # just a flag
 ENV='production'
 
-# # api请求地址
-# VUE_APP_BASE_API=''
-# # 文件下载地址
-# VUE_APP_BASE_DO_API='https://ng-frontend-api.elken.com'
-# # CDN文件地址
-# VUE_APP_CDN_API='http://ng-upload.elken.com'
-# # 结算页面地址
-# VUE_APP_BASE_WEBSITE='https://ngmanager.elken.com'
-# # 会员页面地址
-# VUE_APP_FRONTEND_WEBSITE='https://ngds.elken.com'
-# # PayStack支付key
-# VUE_APP_BASE_PAY_STACK_PUBLIC_KEY='pk_live_fae524f9d073d877beeb661fd825a37a9bc91f0a'
-# # 请求token前缀
-# VUE_APP_ACCESS_TOKEN_PREFIX='Bearer '
-
-# api请求地址
-VUE_APP_BASE_API='http://16.163.228.151:8042'
-# 文件下载地址
-VUE_APP_BASE_DO_API='http://16.163.228.151:8042'
-# CDN文件地址
-VUE_APP_CDN_API='http://16.163.228.151:8042'
-# 区域js文件地址
-VUE_APP_SYSTEM_JS='http://ng-upload.elken.com'
-# 结算页面地址
-VUE_APP_BASE_WEBSITE='http://16.163.228.151:8042'
-# 会员页面地址
-VUE_APP_FRONTEND_WEBSITE='http://16.163.228.151:8045'
-# PayStack支付key
-VUE_APP_BASE_PAY_STACK_PUBLIC_KEY='pk_test_2eed10135c4a958c5073795b22854ded9d1a6c55'
-# 请求token前缀
-VUE_APP_ACCESS_TOKEN_PREFIX='Bearer '
+ # api请求地址
+ VUE_APP_BASE_API='https://ng-backend-api.elken.com'
+ # 文件下载地址
+ VUE_APP_BASE_DO_API='https://ng-backend-api.elken.com'
+ # CDN文件地址
+ VUE_APP_CDN_API='https://ng-upload.elken.com'
+ # 区域js文件地址
+ VUE_APP_SYSTEM_JS='https://ng-upload.elken.com'
+ # 结算页面地址
+ VUE_APP_BASE_WEBSITE='https://ngmanager.elken.com'
+ # 会员页面地址
+ VUE_APP_FRONTEND_WEBSITE='https://ngds.elken.com'
+ # PayStack支付key
+ VUE_APP_BASE_PAY_STACK_PUBLIC_KEY='pk_live_fae524f9d073d877beeb661fd825a37a9bc91f0a'
+ # 请求token前缀
+ VUE_APP_ACCESS_TOKEN_PREFIX='Bearer '

+ 9 - 7
.env.staging

@@ -4,16 +4,18 @@ NODE_ENV=production
 ENV='staging'
 
 # api请求地址
-VUE_APP_BASE_API=''
+VUE_APP_BASE_API='http://16.163.228.151:8042'
 # 文件下载地址
-VUE_APP_BASE_DO_API='http://16.163.228.151:8039'
+VUE_APP_BASE_DO_API='http://16.163.228.151:8042'
 # CDN文件地址
-VUE_APP_CDN_API='http://16.163.228.151:8041'
-# 页面地址
-VUE_APP_BASE_WEBSITE='http://16.163.228.151:8035'
+VUE_APP_CDN_API='http://16.163.228.151:8042'
+# 区域js文件地址
+VUE_APP_SYSTEM_JS='http://ng-upload.elken.com'
+# 结算页面地址
+VUE_APP_BASE_WEBSITE='http://16.163.228.151:8042'
 # 会员页面地址
-VUE_APP_FRONTEND_WEBSITE='http://16.163.228.151:8037'
+VUE_APP_FRONTEND_WEBSITE='http://16.163.228.151:8045'
 # PayStack支付key
 VUE_APP_BASE_PAY_STACK_PUBLIC_KEY='pk_test_2eed10135c4a958c5073795b22854ded9d1a6c55'
 # 请求token前缀
-VUE_APP_ACCESS_TOKEN_PREFIX='Bearer '
+VUE_APP_ACCESS_TOKEN_PREFIX='Bearer '

+ 3 - 1
.eslintrc.js

@@ -9,7 +9,9 @@ module.exports = {
     node: true,
     es6: true,
   },
-  extends: ['plugin:vue/recommended', 'eslint:recommended'],
+  extends: [
+    //'plugin:vue/recommended', 'eslint:recommended'
+  ],
 
   // add your custom rules here
   //it is base on https://github.com/vuejs/eslint-config-vue

BIN
public/favicon.ico


+ 7 - 0
src/App.vue

@@ -5,6 +5,7 @@
 </template>
 
 <script>
+import {getOperatingSystem, getScreenWidth} from "@/utils"
 export default {
   name: 'App'
 }
@@ -30,4 +31,10 @@ body {
 	-webkit-box-shadow: inset 0 0 15px rgba(145, 143, 0143, 0.3);
 	background-color: rgb(145, 143, 143); /*滚动条的背景颜色*/
 }
+
+@media (max-width:500px) {
+  .app-main {
+	padding: 15px 0px;
+  }
+}
 </style>

+ 9 - 0
src/api/ad.js

@@ -75,3 +75,12 @@ export function fetchAdd(data) {
     data
   })
 }
+
+// get方式请求 /ad/add 获取下拉框数据
+export function fetchAddSelectList() {
+  return request({
+    url: '/v1/ad/add',
+    method: 'get',
+    params: {}
+  })
+}

+ 7 - 0
src/api/article.js

@@ -84,3 +84,10 @@ export function fetchArticleAdd(data) {
     data
   })
 }
+
+export function fetchArticleOne(query) {
+  return request({
+    url: 'v1/article/detail/' + query,
+    method: 'get'
+  })
+}

+ 145 - 119
src/components/FilterUser.vue

@@ -1,91 +1,108 @@
 <template>
   <div class="filter-user">
+
     <div class="filter-option">
-      <el-select
-        v-model="filterType"
-        class="filter-item"
-        :placeholder="$t('common.selectType')"
-        @change="handleFilterTypeChange"
-      >
-        <el-option v-for="(item,key) in allFilterTypes" :key="key" :label="item.name" :value="key" />
-      </el-select>
-      <el-select
-        v-model="filterSymbol"
-        class="filter-item"
-        :placeholder="$t('common.selectFunction')"
-      >
-        <el-option v-for="(item,key) in filterSymbols" :key="key" :label="item" :value="key" />
-      </el-select>
-      <template
-        v-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'date'"
-      >
-        <el-date-picker
-          v-model="filterValue"
-          class="filter-item"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetime"
-          :placeholder="$t('common.selectDate')"
-        />
-      </template>
-      <template
-        v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'month'"
-      >
-        <el-date-picker
-          v-model="filterValue"
-          class="filter-item"
-          value-format="yyyyMM"
-          type="month"
-          :placeholder="$t('common.selectMonth')"
-        />
-      </template>
-      <template
-        v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'area'"
-      >
-        <el-cascader
-          v-model="filterAreaValue"
-          class="filter-item"
-          :options="regionData"
-          :props="{ checkStrictly: true }"
-        />
-      </template>
-      <template
-        v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'select'"
-      >
-        <el-select
-          v-model="filterValue"
-          class="filter-item"
-          :placeholder="`请选择${allFilterTypes[filterType].name}`"
-        >
-          <el-option
-            v-for="(item,key) in allFilterTypes[filterType].selectData"
-            :key="key"
-            :label="item.name"
-            :value="item.id"
-          />
-        </el-select>
-      </template>
-      <template
-        v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && filterCustomType.hasOwnProperty(allFilterTypes[filterType].other)"
-      >
-        <el-select v-model="filterValue" class="filter-item" :placeholder="`${filterCustomType[allFilterTypes[filterType].other].placeholder}`">
-          <el-option v-for="(item,key) in filterCustomType[allFilterTypes[filterType].other].values" :key="key" :label="item[filterCustomType[allFilterTypes[filterType].other].labelField]" :value="item[filterCustomType[allFilterTypes[filterType].other].valueField]" />
-        </el-select>
-      </template>
-      <template v-else>
-        <el-input v-model="filterValue" class="filter-item filter-value" :placeholder="$t('common.pleaseInputContent')" />
-      </template>
-      <el-select
-        v-model="filterRelation"
-        class="filter-item filter-relation"
-        :placeholder="$t('common.relation')"
-      >
-        <el-option v-for="(item,key) in filterRelations" :key="key" :label="item" :value="key" />
-      </el-select>
-      <el-button class="filter-item" icon="el-icon-plus" @click="handleOptionPlus" />
-      <el-button class="filter-item" type="primary" @click="handleFilterUser">{{ filterBtnName }}</el-button>
-      <el-button class="filter-item" type="" @click="handleFilterClear">{{ $t('common.reset') }}</el-button>
-<!--      <el-button class="down-button" type="text"><i class="el-icon-arrow-down" /></el-button>-->
+			<div v-if="device">
+					<el-select v-model="filterType" class="filter-item" :placeholder="$t('common.selectType')" @change="handleFilterTypeChange">
+						<el-option v-for="(item,key) in allFilterTypes" :key="key" :label="item.name" :value="key" />
+					</el-select>
+
+					<el-select v-model="filterSymbol" class="filter-item" :placeholder="$t('common.selectFunction')">
+						<el-option v-for="(item,key) in filterSymbols" :key="key" :label="item" :value="key" />
+					</el-select>
+
+					<template v-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'date'">
+						<el-date-picker v-model="filterValue" class="filter-item" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('common.selectDate')"/>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'month'">
+						<el-date-picker v-model="filterValue" class="filter-item" value-format="yyyyMM" type="month" :placeholder="$t('common.selectMonth')"/>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'area'">
+						<el-cascader v-model="filterAreaValue" class="filter-item" :options="regionData" :props="{ checkStrictly: true }"/>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'select'">
+						<el-select v-model="filterValue" class="filter-item" :placeholder="`${pleaseSelect.pleaseSelect}${allFilterTypes[filterType].name}`">
+							<el-option v-for="(item,key) in allFilterTypes[filterType].selectData" :key="key" :label="item.name" :value="item.id"/>
+						</el-select>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && filterCustomType.hasOwnProperty(allFilterTypes[filterType].other)">
+						<el-select v-model="filterValue" class="filter-item" :placeholder="`${filterCustomType[allFilterTypes[filterType].other].placeholder}`">
+							<el-option v-for="(item,key) in filterCustomType[allFilterTypes[filterType].other].values" :key="key" :label="item[filterCustomType[allFilterTypes[filterType].other].labelField]" :value="item[filterCustomType[allFilterTypes[filterType].other].valueField]" />
+						</el-select>
+					</template>
+
+					<template v-else>
+						<el-input v-model="filterValue" class="filter-item filter-value" :placeholder="$t('common.pleaseInputContent')" />
+					</template>
+
+					<el-select v-model="filterRelation" class="filter-item filter-relation" :placeholder="$t('common.relation')">
+						<el-option v-for="(item,key) in filterRelations" :key="key" :label="item" :value="key" />
+					</el-select>
+
+      		<el-button class="filter-item" icon="el-icon-plus" @click="handleOptionPlus" />
+      		<el-button class="filter-item" type="primary" @click="handleFilterUser">{{ filterBtnName }}</el-button>
+      		<el-button class="filter-item" type="" @click="handleFilterClear">{{ $t('common.reset') }}</el-button>
+			</div>
+
+			<el-row :gutter="20" v-else>
+				<el-col :xs="24" :sm="8" :md="8" :lg="8" style="margin-top: 5px;">
+					<el-select v-model="filterType" class="filter-item" :placeholder="$t('common.selectType')" @change="handleFilterTypeChange">
+						<el-option v-for="(item,key) in allFilterTypes" :key="key" :label="item.name" :value="key" />
+					</el-select>
+				</el-col>
+
+				<el-col :xs="24" :sm="8" :md="8" :lg="8" style="margin-top: 5px;">
+					<el-select v-model="filterSymbol" class="filter-item" :placeholder="$t('common.selectFunction')">
+						<el-option v-for="(item,key) in filterSymbols" :key="key" :label="item" :value="key" />
+					</el-select>
+				</el-col>
+
+				<el-col :xs="24" :sm="8" :md="8" :lg="8" style="margin-top: 5px;">
+					<template v-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'date'">
+						<el-date-picker v-model="filterValue" class="filter-item" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('common.selectDate')"/>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'month'">
+						<el-date-picker v-model="filterValue" class="filter-item" value-format="yyyyMM" type="month" :placeholder="$t('common.selectMonth')"/>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'area'">
+						<el-cascader v-model="filterAreaValue" class="filter-item" :options="regionData" :props="{ checkStrictly: true }"/>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'select'">
+						<el-select v-model="filterValue" class="filter-item" :placeholder="`${pleaseSelect.pleaseSelect}${allFilterTypes[filterType].name}`">
+							<el-option v-for="(item,key) in allFilterTypes[filterType].selectData" :key="key" :label="item.name" :value="item.id"/>
+						</el-select>
+					</template>
+
+					<template v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && filterCustomType.hasOwnProperty(allFilterTypes[filterType].other)">
+						<el-select v-model="filterValue" class="filter-item" :placeholder="`${filterCustomType[allFilterTypes[filterType].other].placeholder}`">
+							<el-option v-for="(item,key) in filterCustomType[allFilterTypes[filterType].other].values" :key="key" :label="item[filterCustomType[allFilterTypes[filterType].other].labelField]" :value="item[filterCustomType[allFilterTypes[filterType].other].valueField]" />
+						</el-select>
+					</template>
+
+					<template v-else>
+						<el-input v-model="filterValue" class="filter-item filter-value" :placeholder="$t('common.pleaseInputContent')" />
+					</template>
+
+					<el-select v-model="filterRelation" class="filter-item filter-relation" :placeholder="$t('common.relation')">
+						<el-option v-for="(item,key) in filterRelations" :key="key" :label="item" :value="key" />
+					</el-select>
+				</el-col>
+
+				<el-col :xs="24" :sm="24" :md="24" :lg="24" style="margin-top: 5px;">
+					<el-button class="filter-item" icon="el-icon-plus" @click="handleOptionPlus" />
+					<el-button class="filter-item" type="primary" @click="handleFilterUser">{{ filterBtnName }}</el-button>
+					<el-button class="filter-item" type="" @click="handleFilterClear">{{ $t('common.reset') }}</el-button>
+				</el-col>
+			</el-row>
     </div>
+
     <div v-show="filterSelected.length > 0" class="filter-selected">
       <el-tag
         v-for="(item,key) in filterSelected"
@@ -150,6 +167,7 @@ import baseInfo from '@/utils/baseInfo'
 import store from '@/utils/vuexStore'
 import Pagination from './Pagination'
 import filterHelper from '@/utils/filterHelper'
+import {getOperatingSystem, getScreenWidth} from "@/utils"
 
 export default {
   name: 'FilterUser',
@@ -274,6 +292,7 @@ export default {
       },
       allFilterTypes: this.filterTypes,
       filterType: '',
+
       filterSymbol: '',
       // filterSymbols: {
       //   '=': this.$t('filter.eq'),
@@ -298,7 +317,8 @@ export default {
       multipleSelectionUserId: [],
       regionData: store.state.regionInfo.regionData,
       filterAreaValue: [],
-      filterRequest: {}
+      filterRequest: {},
+			device: getScreenWidth() > 920
     }
   },
   computed: {
@@ -317,75 +337,75 @@ export default {
           values: baseInfo.empLevels()
         },
         decRole: {
-          placeholder: '请选择报单中心级别',
+          placeholder: this.$t('filter.selectStockistHint'),
           labelField: 'ROLE_NAME',
           valueField: 'ID',
           values: baseInfo.decRoles()
         },
-        subCompany: {
-          placeholder: '请选择分公司',
-          labelField: 'COM_NAME',
-          valueField: 'ID',
-          values: baseInfo.subCompanies()
-        },
+        // subCompany: {
+        //   placeholder: '请选择分公司',
+        //   labelField: 'COM_NAME',
+        //   valueField: 'ID',
+        //   values: baseInfo.subCompanies()
+        // },
         status: {
-          placeholder: '请选择会员状态',
+          placeholder: this.$t('filter.selectMemberStatusHint'),
           labelField: 'label',
           valueField: 'value',
           values: baseInfo.allStatus()
         },
         dealTypes: {
-          placeholder: '请选择交易类型',
+          placeholder: this.$t('filter.selectHint'),
           labelField: 'TYPE_NAME',
           valueField: 'ID',
           values: baseInfo.dealTypes()
         },
-        systems: {
-          placeholder: '请选择体系',
-          labelField: 'SYSTEM_NAME',
-          valueField: 'ID',
-          values: baseInfo.systems()
-        },
+        // systems: {
+        //   placeholder: '请选择体系',
+        //   labelField: 'SYSTEM_NAME',
+        //   valueField: 'ID',
+        //   values: baseInfo.systems()
+        // },
         sex: {
-          placeholder: '请选择性别',
+          placeholder: this.$t('filter.selectGenderHint'),
           labelField: 'label',
           valueField: 'value',
           values: {
-            '男': { label: '男', value: '男' },
-            '女': { label: '女', value: '女' }
+            '男': { label: this.$t('filter.man'), value: '男' },
+            '女': { label: this.$t('filter.woman'), value: '女' }
           }
         },
         yesOrNo: {
-          placeholder: '请选择是否',
+          placeholder: this.$t('filter.selectWhetherOrNotHint'),
           labelField: 'label',
           valueField: 'value',
           values: {
-            1: { label: '是', value: 1 },
-            0: { label: '否', value: 0 }
+            1: { label: this.$t('filter.yes'), value: 1 },
+            0: { label: this.$t('filter.not'), value: 0 }
           }
         },
         banks: {
-          placeholder: '请选择开户行',
+          placeholder: this.$t('filter.selectBankHint'),
           labelField: 'BANK_NAME',
           valueField: 'BANK_CODE',
           values: baseInfo.allOpenBank()
         },
-        nations: {
-          placeholder: '请选择民族',
-          labelField: 'name',
-          valueField: 'id',
-          values: baseInfo.allNation()
-        },
+        // nations: {
+        //   placeholder: '请选择民族',
+        //   labelField: 'name',
+        //   valueField: 'id',
+        //   values: baseInfo.allNation()
+        // },
         location: {
-          placeholder: '请选择市场',
+          placeholder: this.$t('filter.selectMarketHint'),
           labelField: 'label',
           valueField: 'value',
           values: {
-            1: { label: '一市场', value: 1 },
-            2: { label: '二市场', value: 2 },
-            3: { label: '三市场', value: 3 },
-            4: { label: '四市场', value: 4 },
-            5: { label: '五市场', value: 5 }
+            1: { label: this.$t('filter.marketI'), value: 1 },
+            2: { label: this.$t('filter.marketII'), value: 2 },
+            // 3: { label: '三市场', value: 3 },
+            // 4: { label: '四市场', value: 4 },
+            // 5: { label: '五市场', value: 5 }
           }
         }
       }
@@ -402,6 +422,12 @@ export default {
         '<=': this.$t('filter.lessThan')
       }
     },
+    pleaseSelect() {
+      return {
+        'pleaseSelect':this.$t('filter.pleaseSelectNotice'),
+      }
+    },
+
     filterRelations() {
       return {
         'and': this.$t('filter.and'),

+ 3 - 0
src/components/LangSelect/index.vue

@@ -35,6 +35,9 @@ export default {
         message: this.$t('common.switchLanguageHints'),
         type: 'success'
       })
+      setTimeout(function(){
+        location.reload();
+      },1000);
     }
   }
 }

+ 35 - 7
src/lang/en.js

@@ -5,7 +5,6 @@ export default {
     guide: 'Guide',
     permission: 'Permission',
     pagePermission: 'Page Permission',
-    rolePermission: 'Role Permission',
     directivePermission: 'Directive Permission',
     icons: 'Icons',
     components: 'Components',
@@ -235,7 +234,23 @@ export default {
     calStartedAt: 'Settlement start time',
     calculatedAt: 'Settlement end time',
     sendStartedAt: 'Network connection start time',
-    sentAt: 'End time of network connection'
+    sentAt: 'End time of network connection',
+    start: 'start',
+    complete: 'complete',
+    shouldStartOn: 'Should start on',
+    shouldEndOn: 'Should end on',
+    spreadNet: 'spread a net',
+    logTitle: '第{currentPeriod}期计算任务日志',
+    autoSettlementHint: 'Confirm to perform settlement operation for the auto current period?',
+    generatePerformanceOrderHint: 'Confirm to generate performance order for the current period?',
+    generatePerformanceSheetHint: 'Confirm to generate performance sheet for the current period?',
+    pullPerformanceSheetHint: 'Confirm to pull performance sheet for the current period?',
+    calculateBonusDataHint: 'Confirm to calculate bonus data for the current period?',
+    syncCalculateBonusRecordHint: 'Confirm to sync calculate bonus record for the current period?',
+    manuallySealHint: 'Confirm to manually seal the current period?',
+    performSettlementOperationHint: 'Confirm to perform settlement operation for the current period',
+    spreadNetHint: 'Are you sure to connect the current period? Performance sheet and settlement cannot be generated after network connection',
+    allWithdrawalHint: '全部提现?',
   },
   documentation: {
     documentation: 'Documentation',
@@ -331,6 +346,8 @@ export default {
   },
 
   common: {
+    dashboardWelcome:'Welcome',
+    screen: 'Select',
     save: 'Save',
     modify: 'Modify',
     submit: 'Submit',
@@ -341,7 +358,6 @@ export default {
     no: 'NO',
     view: 'View',
     select: 'Select',
-    reset: 'Reset',
     startDate: 'Start Date',
     endDate: 'End Date',
     deleteTips: 'Are you sure you want to delete the selected data?',
@@ -362,7 +378,7 @@ export default {
     updatedAdmin: 'Updater',
     actionThisData: 'Manipulate the data',
     selectType: 'Filter type',
-    selectFunction: 'Filter method', 
+    selectFunction: 'Filter method',
     selectDate: 'Select date',
     selectMonth: 'Select month',
     pleaseInputContent: 'Please enter content',
@@ -398,6 +414,7 @@ export default {
     addAt: 'Join time',
     pleaseSelectDecLevel: 'Please select order level',
     pleaseSelectEmpLevel: 'Please select level',
+    pleaseSelectNotice:'Please select ',
     eq: 'Equal',
     like: 'Include',
     noeq: 'Not equal to',
@@ -409,7 +426,20 @@ export default {
     and: 'and',
     or: 'or',
     selectContentNotice: 'Please fill in the complete selected content',
-    areaSelectNotice: 'Regions are limited to "equal to" filters'
+    areaSelectNotice: 'Regions are limited to "equal to" filters',
+    selectStockistHint: 'Please select the Stockist Level',
+    selectMemberStatusHint: 'Please select the member status',
+    selectHint: 'Please select the transaction type',
+    selectGenderHint: 'Please select the gender',
+    selectWhetherOrNotHint: 'Please select whether or not',
+    selectBankHint: 'Please select the bank',
+    selectMarketHint: 'Please select the market',
+    marketI: 'I. Market',
+    marketII: 'II. Market',
+    yes: 'Yes',
+    not: 'Not',
+    man: 'man',
+    woman: 'woman',
   },
 
   menu: {
@@ -722,7 +752,6 @@ export default {
     rechargeStatusState: 'State',
     reviewWithdrawalInfoNotice: 'Review withdrawal info',
     datePayment: 'Date of payment',
-    selectRecordOperateNotice: 'Select the record to operate on',
     surePassReviewNoteNotice: 'Be sure to pass the review ? Note: ',
     sureUnpaidReviewNotice: 'Be sure to unpaid the review ? Note: ',
     surePaymentFailureReview: 'Be sure to payment failure the review ? Note: ',
@@ -817,7 +846,6 @@ export default {
     loginTimes: 'Logins',
     lastLoginIp: 'Last login IP',
     lastLoginAt: 'last login time',
-    selectData: 'Selected data',
     addAdmin: 'Add administrator',
     delNotice: 'Determine to delete the selected data'
   },

+ 34 - 8
src/lang/zh.js

@@ -69,7 +69,6 @@ export default {
     adminRoleList:'管理员角色列表',
     addRole:'添加角色',
     editRole:'编辑角色',
-    rolePermission:'角色权限',
     resetPwd:'重置密码',
     adminList:'管理员列表',
     addAdmin:'添加管理员',
@@ -234,8 +233,23 @@ export default {
     calStartedAt: '结算开始时间',
     calculatedAt: '结算结束时间',
     sendStartedAt: '挂网开始时间',
-    sentAt: '挂网结束时间'
-
+    sentAt: '挂网结束时间',
+    start: '开始',
+    complete: '完成',
+    shouldStartOn: '应开始于',
+    shouldEndOn: '应结束于',
+    spreadNet: '挂网',
+    logTitle: '第{currentPeriod}期计算任务日志',
+    autoSettlementHint: '确定对当前期进行结算操作?',
+    generatePerformanceOrderHint: '确定对当前期进行生成业绩单操作?',
+    generatePerformanceSheetHint: '确定对当前期进行生成业绩单操作?',
+    pullPerformanceSheetHint: '确定对当前期进行生成业绩单操作?',
+    calculateBonusDataHint: '确定对当前期进行生成业绩单操作?',
+    syncCalculateBonusRecordHint: '确定对当前期进行生成业绩单操作?',
+    manuallySealHint: '确定对当前期进行手动封期操作?',
+    performSettlementOperationHint: '确定对当前期进行结算操作?',
+    spreadNetHint: '确定对当前期进行挂网操作?挂网后无法生成业绩单和结算',
+    allWithdrawalHint: '全部提现?',
   },
   documentation: {
     documentation: '文档',
@@ -332,6 +346,7 @@ export default {
   },
 
   common: {
+    dashboardWelcome:'欢迎',
     screen: '筛选',
     save: '保存',
     modify: '修改',
@@ -374,7 +389,6 @@ export default {
     exportPDF: '导出PDF',
     upload: '上传',
     modifyData: '正在修改数据',
-    upload: '上传',
     hide: '不展示',
     unhide: '展示',
     selectData: '所选数据',
@@ -400,6 +414,7 @@ export default {
     addAt: '加入时间',
     pleaseSelectDecLevel: '请选择报单级别',
     pleaseSelectEmpLevel: '请选择级别',
+    pleaseSelectNotice:'请选择 ',
     eq: '等于',
     like: '包含',
     noeq: '不等于',
@@ -411,7 +426,20 @@ export default {
     and: '并且',
     or: '或者',
     selectContentNotice: '请填写完整筛选内容',
-    areaSelectNotice: '地区仅限于"等于"的筛选方式'
+    areaSelectNotice: '地区仅限于"等于"的筛选方式',
+    selectStockistHint: '请选择报单中心级别',
+    selectMemberStatusHint: '请选择会员状态',
+    selectHint: '请选择交易类型',
+    selectGenderHint: '请选择性别',
+    selectWhetherOrNotHint: '请选择是否',
+    selectBankHint: '请选择开户行',
+    selectMarketHint: '请选择市场',
+    marketI: 'I. Market',
+    marketII: 'II. Market',
+    yes: '是',
+    not: '否',
+    man: '男',
+    woman: '女',
   },
 
   // 菜单
@@ -491,7 +519,7 @@ export default {
   // 会员
   member: {
     memberCode: '会员编号',
-    memberName: '会员名',
+    memberName: '会员名',
     currentLevel: '当前级别',
     stockistLevel: '报单中心级别',
     entryLevel: '报单级别',
@@ -699,7 +727,6 @@ export default {
     transactionType: '交易类型',
     pleaseSelectTranserType: '请选择交易类型',
     forgeDisplayRemark: '备注前台显示',
-    selectRecordOperateNotice: '请选择要操作的记录',
     modifyData: '正在修改数据',
     balanceInsufficientSubmitNotice: '会员账户余额不足,是否继续提交',
     passingAudit: '正在通过审核',
@@ -813,7 +840,6 @@ export default {
     loginTimes: '登录次数',
     lastLoginIp: '最后登录IP',
     lastLoginAt: '最后登录时间',
-    selectData: '所选数据',
     addAdmin: '添加管理员',
     delNotice: '确定删除选定的数据?'
   },

+ 4 - 5
src/layout/components/Navbar.vue

@@ -16,12 +16,11 @@
           <size-select id="size-select" class="right-menu-item hover-effect" />
         </el-tooltip> -->
         <div style="float:left;"> {{ $t('navbar.nowTime') }} :{{ nowDateTime }}   {{ $t('navbar.nowPeriod') }}:{{periodNum}} </div>
-
-        <lang-select class="right-menu-item hover-effect" />
-
       </template>
 
-      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
+			<lang-select class="right-menu-item hover-effect" />
+
+			<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
         <div class="avatar-wrapper">
           <img src="@/assets/avatar/avatar.gif" class="user-avatar" alt="">
           <i class="el-icon-caret-bottom" />
@@ -112,7 +111,7 @@ export default {
         obj.nowTime += 1
       }, 1000)
     },
-    
+
   }
 }
 </script>

+ 8 - 31
src/router/index.js

@@ -281,37 +281,7 @@ export const asyncRoutes = [
   memberRouter,
   // 设置
   configRouter,
-  {
-    path: '/example',
-    component: Layout,
-    redirect: '/example/list',
-    name: 'Example',
-    meta: {
-      title: 'example',
-      icon: 'el-icon-s-help'
-    },
-    children: [
-      {
-        path: 'create',
-        component: () => import('@/views/example/create'),
-        name: 'CreateArticle',
-        meta: { title: 'createArticle', icon: 'edit' }
-      },
-      {
-        path: 'edit/:id(\\d+)',
-        component: () => import('@/views/example/edit'),
-        name: 'EditArticle',
-        meta: { title: 'editArticle', noCache: true, activeMenu: '/example/list' },
-        hidden: true
-      },
-      {
-        path: 'list',
-        component: () => import('@/views/example/list'),
-        name: 'ArticleList',
-        meta: { title: 'articleList', icon: 'list' }
-      }
-    ]
-  },
+
   {
     path: '/ad',
     component: Layout,
@@ -416,6 +386,13 @@ export const asyncRoutes = [
         name: 'add',
         meta: { title: 'metaArticleAdd', noCache: true },
         hidden: true
+      },
+      {
+        path: 'detail',
+        component: () => import('@/views/article/detail'),
+        name: 'detail',
+        meta: { title: 'metaArticleDetail', noCache: true },
+        hidden: true
       }
     ]
   },

+ 4 - 2
src/utils/index.js

@@ -400,7 +400,8 @@ export function getMedia() {
  * @returns {number}
  */
 export function getScreenWidth() {
-  return window.screen.width
+  // return window.screen.width // 当前屏幕宽度(分辨率值)
+  return window.document.body.offsetWidth  // 返回当前网页宽度
 }
 
 /**
@@ -408,7 +409,8 @@ export function getScreenWidth() {
  * @returns {number}
  */
 export function getScreenHeight() {
-  return window.screen.height
+  // return window.screen.height  // 当前屏幕高度(分辨率值)
+  return window.document.body.offsetHeight  // 返回当前网页高度
 }
 
 /**

+ 6 - 3
src/views/ad/edit.vue

@@ -54,7 +54,7 @@
 </template>
 
 <script>
-import { fetchDetail, fetchEdit, fetchAdd } from '@/api/ad'
+import { fetchDetail, fetchEdit, fetchAdd, fetchAddSelectList } from '@/api/ad'
 import tool from '@/utils/tool'
 import Upload from '@/components/Upload'
 import ElementUI from 'element-ui'
@@ -92,6 +92,7 @@ export default {
     }
   },
   mounted() {
+    console.log('roue.name--->'+this.$route.name)
     if (this.$route.name === 'ad-edit') {
       fetchDetail(this.$route.params.ID).then(response => {
         this.form.title = response.data.oneData.TITLE
@@ -112,13 +113,14 @@ export default {
           ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
       })
     } else {
-      fetchDetail(this.$route.params.ID).then(response => {
+      fetchAddSelectList().then(response => {
         this.allLocation = response.data.allLocation
         this.allArticle = response.data.allArticle
 
         this.loading = false
       }).catch((error) => {
           ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
+          this.loading = false
       })
     }
   },
@@ -138,6 +140,7 @@ export default {
            ElementUI.Message({type: 'error', message: error.message, showClose: true, duration: 0})
        })
       } else {
+        //console.log(this.form)
         fetchAdd(this.form).then(response => {
           this.submitButtonStat = false
           this.$message({
@@ -152,7 +155,7 @@ export default {
     },
     handleSuccess(imageUrl) {
       this.imageAd = imageUrl
-      this.form.image = tool.getArImage(imageUrl, '/files/')
+      this.form.image =imageUrl
       this.defaultImageUrl = tool.getArImage(imageUrl, '/files/')
     }
   }

+ 14 - 5
src/views/ad/list.vue

@@ -112,11 +112,10 @@
             <el-dropdown-item command="un-hide" @click.native="handleMultiUnHide()">{{ $t('ad.unhide') }}</el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
-        <el-button v-if="permission.hasPermission(`ad/ad-add`)" type="primary" size="small" icon="el-icon-plus" @click="handleAdd">{{ $t('ad.add') }}</el-button>
-        <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
+        <el-button v-if="permission.hasPermission(`ad/ad-delete`)" type="primary" size="small" icon="el-icon-plus" @click="handleAdd">{{ $t('ad.add') }}</el-button>
+        <pagination v-show="total>0" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" :page.sync="listQuery.page" :limit.sync="listQuery.pageSize" @pagination="getList" />
+      </div>
       </div>
-
-      </el-table></div>
   </div>
 </template>
 
@@ -167,6 +166,7 @@ export default {
       tool: tool,
       permission: permission,
       multipleSelection: null,
+      pageSize: 20,
       listQuery: {
         page: 1,
         pageSize: 20,
@@ -218,15 +218,24 @@ export default {
     handleSelectionChange(val) {
       this.multipleSelection = val
     },
-    getList() {
+    handleSizeChange (pageSize) {
+      this.getList(this.currentPage, pageSize)
+    },
+    handleCurrentChange (page) {
+      this.getList(page, this.pageSize)
+    },
+    getList(page, pageSize) {
       this.listLoading = true
       this.listQuery.adId = this.$route.params
+      this.listQuery.page = (page === null || page == undefined) ? 1 : page
+      this.listQuery.pageSize = (pageSize === null || pageSize == undefined) ? this.pageSize : pageSize
       fetchAdList(this.listQuery).then(response => {
         this.list = response.data.list
         this.total = response.data.totalCount
         this.allArticle = response.data.allArticle
         const ad_id = this.listQuery.adId.ID
         this.allLocation = response.data.allLocation[ad_id]
+        this.pageSize = pageSize
         // Just to simulate the time of the request
         setTimeout(() => {
           this.listLoading = false

+ 8 - 7
src/views/admin/index.vue

@@ -121,7 +121,7 @@ import FilterUser from '@/components/FilterUser'
 import permission from '@/utils/permission'
 import Pagination from '@/components/Pagination'
 import filterHelper from '@/utils/filterHelper'
-import {getOperatingSystem} from "@/utils"
+import {getOperatingSystem, getScreenWidth} from "@/utils"
 
 export default {
   name: 'DecLevel',
@@ -159,12 +159,13 @@ export default {
   },
   mounted() {
     this.getData()
-    let system =  getOperatingSystem()
-    if (system == "Android" || system == 'ios') {
-      this.fixedColumn = false
-    } else {
-      this.fixedColumn = 'right'
-    }
+    // let system =  getOperatingSystem()
+    // if (system == "Android" || system == 'ios') {
+    //   this.fixedColumn = false
+    // } else {
+    //   this.fixedColumn = 'right'
+    // }
+		this.fixedColumn = getScreenWidth() < 500 ? false : 'right'
   },
   methods: {
     checkSelectable(row) {

+ 8 - 7
src/views/admin/role.vue

@@ -75,7 +75,7 @@ import FilterUser from '@/components/FilterUser'
 import permission from '@/utils/permission'
 import Pagination from '@/components/Pagination'
 import filterHelper from '@/utils/filterHelper'
-import {getOperatingSystem} from "@/utils"
+import {getOperatingSystem, getScreenWidth} from "@/utils"
 
 export default {
   name: 'Role',
@@ -109,12 +109,13 @@ export default {
   },
   mounted() {
     this.getData()
-    let system =  getOperatingSystem()
-    if (system == "Android" || system == 'ios') {
-      this.fixedColumn = false
-    } else {
-      this.fixedColumn = 'right'
-    }
+    // let system =  getOperatingSystem()
+    // if (system == "Android" || system == 'ios') {
+    //   this.fixedColumn = false
+    // } else {
+    //   this.fixedColumn = 'right'
+    // }
+		this.fixedColumn = getScreenWidth() < 500 ? false : 'right'
   },
   methods: {
     handleSelectionChange(val) {

+ 54 - 0
src/views/article/detail.vue

@@ -0,0 +1,54 @@
+<template>
+  <div v-loading="loading">
+    <div class="white-box">
+      <div class="white-box-title">
+        <h1>{{ title }}</h1>
+        <span>{{ createdAt | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
+      </div>
+      <div v-html="content" class="white-box-content">
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {fetchArticleOne} from "@/api/article"
+
+export default {
+  name: 'detail',
+  mounted() {
+    this.getData()
+  },
+  data () {
+    return {
+      title: null,
+      content: null,
+      createdAt: '',
+      loading: true,
+    }
+  },
+  methods: {
+    handleCurrentChange(page) {
+      this.getData(page, this.pageSize)
+    },
+    handleSizeChange(pageSize) {
+      this.getData(this.currentPage, pageSize)
+    },
+    getData() {
+			fetchArticleOne(this.$route.params.ID).then(response => {
+				this.form.title = response.data.oneData.TITLE
+				this.form.cid = response.data.oneData.CID
+				this.form.content = response.data.oneData.CONTENT
+				this.form.sort = response.data.oneData.SORT
+				this.allCategory = response.data.allCategory
+				this.loading = false
+			})
+    },
+  }
+}
+</script>
+
+<style scoped>
+  .white-box-title span{color: #999}
+  .white-box-content{font-size: 16px;padding: 15px 0;line-height: 2;}
+</style>

+ 62 - 58
src/views/bonus/period.vue

@@ -20,8 +20,8 @@
         </el-table-column>
         <el-table-column :label="$t('bonus.timeframe')" width="260"><!-- 时间范围 -->
           <template slot-scope="scope">
-            <!-- 应开始于 -->Should start on:{{getWatTime(scope.row.START_TIME)}}<br/>
-            <!-- 应结束于 -->Should end on:{{getWatTime(scope.row.END_TIME)}}
+            <!-- 应开始于 -->{{ $t('bonus.shouldStartOn') }}:{{getWatTime(scope.row.START_TIME)}}<br/>
+            <!-- 应结束于 -->{{ $t('bonus.shouldEndOn') }}:{{getWatTime(scope.row.END_TIME)}}
           </template>
         </el-table-column>
         <el-table-column :label="$t('bonus.closingTime')" width="180"><!-- 封期时间 -->
@@ -37,8 +37,8 @@
 <!--        </el-table-column>-->
         <el-table-column :label="$t('bonus.timeOfGeneratingPerformanceSheet')" width="230"><!-- 生成业绩单时间 -->
           <template slot-scope="scope">
-            <!-- 开始 -->start:{{getWatTime(scope.row.PERF_STARTED_AT)}}<br>
-            <!-- 完成 -->complete:{{getWatTime(scope.row.PERFED_AT)}}
+            <!-- 开始 -->{{ $t('bonus.start') }}:{{getWatTime(scope.row.PERF_STARTED_AT)}}<br>
+            <!-- 完成 -->{{ $t('bonus.complete') }}:{{getWatTime(scope.row.PERFED_AT)}}
           </template>
         </el-table-column>
 <!--        <el-table-column label="Settlement progress" width="80">&lt;!&ndash; 结算进度 &ndash;&gt;-->
@@ -49,8 +49,8 @@
 <!--        </el-table-column>-->
         <el-table-column :label="$t('bonus.settlementDate')" width="230"><!-- 结算时间 -->
           <template slot-scope="scope">
-            <!-- 开始 -->start:{{getWatTime(scope.row.CALCULATE_STARTED_AT)}}<br>
-            <!-- 完成 -->complete:{{getWatTime(scope.row.CALCULATED_AT)}}
+            <!-- 开始 -->{{ $t('bonus.start') }}:{{getWatTime(scope.row.CALCULATE_STARTED_AT)}}<br>
+            <!-- 完成 -->{{ $t('bonus.complete') }}:{{getWatTime(scope.row.CALCULATED_AT)}}
           </template>
         </el-table-column>
 <!--        <el-table-column label="Network connection progress" width="80">&lt;!&ndash; 挂网进度 &ndash;&gt;-->
@@ -61,11 +61,11 @@
 <!--        </el-table-column>-->
         <el-table-column :label="$t('bonus.networkConnectionTime')" width="230"><!-- 挂网时间 -->
           <template slot-scope="scope">
-            <!-- 开始 -->start:{{getWatTime(scope.row.SEND_STARTED_AT)}}<br/>
-            <!-- 完成 -->complete:{{getWatTime(scope.row.SENT_AT)}}
+            <!-- 开始 -->{{ $t('bonus.start') }}:{{getWatTime(scope.row.SEND_STARTED_AT)}}<br/>
+            <!-- 完成 -->{{ $t('bonus.complete') }}:{{getWatTime(scope.row.SENT_AT)}}
           </template>
         </el-table-column>
-        <el-table-column fixed="right" :label="$t('common.action')" width=""><!-- 操作 -->
+        <el-table-column :fixed="fixed" :label="$t('common.action')" width=""><!-- 操作 -->
           <template slot-scope="scope">
 <!--            <el-button v-if="scope.row.IS_CAN_CLOSE && permission.hasPermission(`bonus/close-period`)" class="button" type="primary"-->
 <!--                       @click.native="trialCalcHandle(scope.row.PERIOD_NUM)" >-->
@@ -80,17 +80,17 @@
             </el-button>
             <el-button style="margin: 0 0 !important;" @click.native="sentHandle(scope.row)" type="primary" class="button"
                               v-if="scope.row.IS_CAN_SENT && permission.hasPermission(`bonus/send-period`)">
-              <!-- 挂网 -->spread a net
+              <!-- 挂网 -->{{ $t('bonus.spreadNet') }}
             </el-button>
 
-            <el-dialog :title="`第${currentPeriod}期计算任务日志`" :visible.sync="dialogTableVisible" append-to-body width="60%">
+            <el-dialog :title="$t('bonus.logTitle', { currentPeriod: currentPeriod })" :visible.sync="dialogTableVisible" append-to-body :width="screenWidth">
               <el-row>
                 <el-button style="margin-left:10px;" class="button" type="primary" @click.native="getDialogData();dialogLoading=true;" >
                   {{$t('bonus.logRefresh')}}
                 </el-button>
               </el-row>
               <el-divider></el-divider>
-              
+
               <el-row>
                 <el-button  class="button customstyle" style="margin-left:10px;" type="success" @click.native="autoCalcHandle(currentPeriod)"
                   v-if="permission.hasPermission(`bonus/calc-period`)"
@@ -101,8 +101,8 @@
                 <el-button  class="button customstyle" type="primary" @click.native="pullPerfPeriodHandle(currentPeriod)" >{{$t('bonus.pullPeriodPerformance')}}</el-button>
                 <el-button  class="button customstyle" type="primary" @click.native="calcBonusHandle(currentPeriod)" >{{$t('bonus.calculationOfBonus')}}</el-button>
                 <el-button  class="button customstyle" type="primary" @click.native="pullBonusHandle(currentPeriod)" >{{$t('bonus.pullBonusData')}}</el-button>
-              </el-row>    
-                        
+              </el-row>
+
 <!--                  <el-row><el-button class="button" type="primary" @click.native="autoPerfHandle(currentPeriod)" >计算和拉取期业绩</el-button></el-row>-->
                 <div>
                   <el-table :data="dialogData" height="550" v-loading="dialogLoading" style="width: 100%">
@@ -170,6 +170,7 @@ import Pagination from '@/components/Pagination'
 import filterHelper from '../../utils/filterHelper'
 import { fetchPeriod,fetchAutoWithdraw,fetchRecordList,fetchAutoCalc,fetchPerfOrderList,fetchInitData,fetchCalcPerfPeriod,fetchPullPerfPeriod,fetchCalcBonus,fetchSyncCalcRecord,fetchPullBonus,fetchClosePeriod,fetchCalcPeriod,fetchPerfPeriod,fetchSendPeriod } from '@/api/bonus'
 import ElementUI from 'element-ui'
+import {getScreenWidth} from "@/utils";
 
 export default {
   name: 'bonus-period',
@@ -192,7 +193,7 @@ export default {
   },
   mounted () {
     this.getData(this.currentPage, this.pageSize)
-    store.state.socket.onMessageCallback = this.onMessageCallback
+    // store.state.socket.onMessageCallback = this.onMessageCallback
   },
   data () {
     return {
@@ -241,15 +242,18 @@ export default {
         resource: '',
         desc: ''
       },
-      formLabelWidth: '120px'
+      formLabelWidth: '120px',
+			fixed: getScreenWidth() < 500 ? false : 'right',
+			screenWidth: getScreenWidth() > 600 ? '600px' : getScreenWidth() + 'px',
+			labelPosition: getScreenWidth() >= 600 ? 'right' : 'top',
     };
 
   },
   methods: {
     autoCalcHandle(currentPeriod) {
-      this.$confirm('Confirm to perform settlement operation for the auto current period?', 'Hint', { // '确定对当前期进行结算操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.autoSettlementHint'), this.$t('common.hint'), { // '确定对当前期进行结算操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         // return network.getData(`calc/auto-calc/${currentPeriod}`)
@@ -267,9 +271,9 @@ export default {
       })
     },
     perfOrderHandle(currentPeriod) {
-      this.$confirm('Confirm to generate performance order for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.generatePerformanceOrderHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
          return fetchPerfOrderList(currentPeriod)
@@ -286,9 +290,9 @@ export default {
      })
     },
     initDataHandle(currentPeriod) {
-      this.$confirm('Confirm to generate performance sheet for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.generatePerformanceSheetHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchInitData(currentPeriod)
@@ -305,9 +309,9 @@ export default {
      })
     },
     perfPeriodHandle(currentPeriod) {
-      this.$confirm('Confirm to generate performance sheet for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.generatePerformanceSheetHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchCalcPerfPeriod(currentPeriod)
@@ -324,9 +328,9 @@ export default {
       })
     },
     pullPerfPeriodHandle(currentPeriod) {
-      this.$confirm('Confirm to pull performance sheet for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.pullPerformanceSheetHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchPullPerfPeriod(currentPeriod)
@@ -343,9 +347,9 @@ export default {
       })
     },
     calcBonusHandle(currentPeriod) {
-      this.$confirm('Confirm to calculate bonus data for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.calculateBonusDataHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchCalcBonus(currentPeriod)
@@ -362,9 +366,9 @@ export default {
      })
     },
     calcBonusRecordHandle(currentPeriod) {
-      this.$confirm('Confirm to sync calculate bonus record for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.syncCalculateBonusRecordHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
          return fetchSyncCalcRecord(currentPeriod)
@@ -381,9 +385,9 @@ export default {
       })
     },
     pullBonusHandle(currentPeriod) {
-      this.$confirm('Confirm to calculate bonus data for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.calculateBonusDataHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchPullBonus(currentPeriod)
@@ -400,9 +404,9 @@ export default {
       })
     },
     // trialCalcHandle (currentPeriod) {
-    //   this.$confirm('Confirm to calculate bonus data for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-    //     confirmButtonText: 'confirm', // 确定
-    //     cancelButtonText: 'cancel', // 取消
+    //   this.$confirm('Confirm to calculate bonus data for the current period?', this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+    //     confirmButtonText: this.$t('common.confirm'), // 确定
+    //     cancelButtonText: this.$t('common.cancel'), // 取消
     //     type: 'warning'
     //   }).then(() => {
     //     return network.getData(`calc/trial-calc/${currentPeriod}`)
@@ -429,9 +433,9 @@ export default {
     },
 
     closeHandle (row) {
-      this.$confirm('Confirm to manually seal the current period?', 'Hint', { // '确定对当前期进行手动封期操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.manuallySealHint'), this.$t('common.hint'), { // '确定对当前期进行手动封期操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
          return fetchClosePeriod(row.PERIOD_NUM)
@@ -448,9 +452,9 @@ export default {
       })
     },
     calcHandle (row) {
-      this.$confirm('Confirm to perform settlement operation for the current period?', 'Hint', { // '确定对当前期进行结算操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.performSettlementOperationHint'), this.$t('common.hint'), { // '确定对当前期进行结算操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchCalcPeriod(row.PERIOD_NUM)
@@ -467,9 +471,9 @@ export default {
      })
     },
     perfHandle (row) {
-      this.$confirm('Confirm to generate performance sheet for the current period?', 'Hint', { // '确定对当前期进行生成业绩单操作?', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.generatePerformanceSheetHint'), this.$t('common.hint'), { // '确定对当前期进行生成业绩单操作?', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchPerfPeriod(row.PERIOD_NUM)
@@ -486,9 +490,9 @@ export default {
      })
     },
     sentHandle (row) {
-      this.$confirm('Are you sure to connect the current period? Performance sheet and settlement cannot be generated after network connection', 'Hint', { // '确定对当前期进行挂网操作?挂网后无法生成业绩单和结算', '提示'
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.spreadNetHint'), this.$t('common.hint'), { // '确定对当前期进行挂网操作?挂网后无法生成业绩单和结算', '提示'
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         return fetchSendPeriod(row.PERIOD_NUM)
@@ -505,9 +509,9 @@ export default {
       })
     },
     doAutoWithdraw () {
-      this.$confirm('全部提现?', 'Hint', {
-        confirmButtonText: 'confirm', // 确定
-        cancelButtonText: 'cancel', // 取消
+      this.$confirm(this.$t('bonus.allWithdrawalHint'), this.$t('common.hint'), {
+        confirmButtonText: this.$t('common.confirm'), // 确定
+        cancelButtonText: this.$t('common.cancel'), // 取消
         type: 'warning'
       }).then(() => {
         //return network.getData(`bonus/auto-withdraw`)

+ 1 - 1
src/views/dashboard/admin/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="dashboard-editor-container">
-		<h2>Welcome {{ user.name }}</h2>
+		<h2>{{ $t('common.dashboardWelcome') }} {{ user.name }}</h2>
 <!--    <github-corner class="github-corner" />-->
 
 <!--    <panel-group @handleSetLineChartData="handleSetLineChartData" />-->

+ 0 - 291
src/views/example/components/ArticleDetail.vue

@@ -1,291 +0,0 @@
-<template>
-  <div class="createPost-container">
-    <el-form ref="postForm" :model="postForm" :rules="rules" class="form-container">
-      <sticky :z-index="10" :class-name="'sub-navbar '+postForm.status">
-        <CommentDropdown v-model="postForm.comment_disabled" />
-        <PlatformDropdown v-model="postForm.platforms" />
-        <SourceUrlDropdown v-model="postForm.source_uri" />
-        <el-button v-loading="loading" style="margin-left: 10px;" type="success" @click="submitForm">
-          Publish
-        </el-button>
-        <el-button v-loading="loading" type="warning" @click="draftForm">
-          Draft
-        </el-button>
-      </sticky>
-
-      <div class="createPost-main-container">
-        <el-row>
-          <Warning />
-
-          <el-col :span="24">
-            <el-form-item style="margin-bottom: 40px;" prop="title">
-              <MDinput v-model="postForm.title" :maxlength="100" name="name" required>
-                Title
-              </MDinput>
-            </el-form-item>
-
-            <div class="postInfo-container">
-              <el-row>
-                <el-col :span="8">
-                  <el-form-item label-width="60px" label="Author:" class="postInfo-container-item">
-                    <el-select v-model="postForm.author" :remote-method="getRemoteUserList" filterable default-first-option remote placeholder="Search user">
-                      <el-option v-for="(item,index) in userListOptions" :key="item+index" :label="item" :value="item" />
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-
-                <el-col :span="10">
-                  <el-form-item label-width="120px" label="Publish Time:" class="postInfo-container-item">
-                    <el-date-picker v-model="displayTime" type="datetime" format="yyyy-MM-dd HH:mm:ss" placeholder="Select date and time" />
-                  </el-form-item>
-                </el-col>
-
-                <el-col :span="6">
-                  <el-form-item label-width="90px" label="Importance:" class="postInfo-container-item">
-                    <el-rate
-                      v-model="postForm.importance"
-                      :max="3"
-                      :colors="['#99A9BF', '#F7BA2A', '#FF9900']"
-                      :low-threshold="1"
-                      :high-threshold="3"
-                      style="display:inline-block"
-                    />
-                  </el-form-item>
-                </el-col>
-              </el-row>
-            </div>
-          </el-col>
-        </el-row>
-
-        <el-form-item style="margin-bottom: 40px;" label-width="70px" label="Summary:">
-          <el-input v-model="postForm.content_short" :rows="1" type="textarea" class="article-textarea" autosize placeholder="Please enter the content" />
-          <span v-show="contentShortLength" class="word-counter">{{ contentShortLength }}words</span>
-        </el-form-item>
-
-        <el-form-item prop="content" style="margin-bottom: 30px;">
-          <Tinymce ref="editor" v-model="postForm.content" :height="400" />
-        </el-form-item>
-
-        <el-form-item prop="image_uri" style="margin-bottom: 30px;">
-          <Upload v-model="postForm.image_uri" />
-        </el-form-item>
-      </div>
-    </el-form>
-  </div>
-</template>
-
-<script>
-import Tinymce from '@/components/Tinymce'
-import Upload from '@/components/Upload/SingleImage3'
-import MDinput from '@/components/MDinput'
-import Sticky from '@/components/Sticky' // 粘性header组件
-import { validURL } from '@/utils/validate'
-import { fetchArticle } from '@/api/article'
-import { searchUser } from '@/api/remote-search'
-import Warning from './Warning'
-import { CommentDropdown, PlatformDropdown, SourceUrlDropdown } from './Dropdown'
-
-const defaultForm = {
-  status: 'draft',
-  title: '', // 文章题目
-  content: '', // 文章内容
-  content_short: '', // 文章摘要
-  source_uri: '', // 文章外链
-  image_uri: '', // 文章图片
-  display_time: undefined, // 前台展示时间
-  id: undefined,
-  platforms: ['a-platform'],
-  comment_disabled: false,
-  importance: 0
-}
-
-export default {
-  name: 'ArticleDetail',
-  components: { Tinymce, MDinput, Upload, Sticky, Warning, CommentDropdown, PlatformDropdown, SourceUrlDropdown },
-  props: {
-    isEdit: {
-      type: Boolean,
-      default: false
-    }
-  },
-  data() {
-    const validateRequire = (rule, value, callback) => {
-      if (value === '') {
-        this.$message({
-          message: rule.field + '为必传项',
-          type: 'error'
-        })
-        callback(new Error(rule.field + '为必传项'))
-      } else {
-        callback()
-      }
-    }
-    const validateSourceUri = (rule, value, callback) => {
-      if (value) {
-        if (validURL(value)) {
-          callback()
-        } else {
-          this.$message({
-            message: '外链url填写不正确',
-            type: 'error'
-          })
-          callback(new Error('外链url填写不正确'))
-        }
-      } else {
-        callback()
-      }
-    }
-    return {
-      postForm: Object.assign({}, defaultForm),
-      loading: false,
-      userListOptions: [],
-      rules: {
-        image_uri: [{ validator: validateRequire }],
-        title: [{ validator: validateRequire }],
-        content: [{ validator: validateRequire }],
-        source_uri: [{ validator: validateSourceUri, trigger: 'blur' }]
-      },
-      tempRoute: {}
-    }
-  },
-  computed: {
-    contentShortLength() {
-      return this.postForm.content_short.length
-    },
-    lang() {
-      return this.$store.getters.language
-    },
-    displayTime: {
-      // set and get is useful when the data
-      // returned by the back end api is different from the front end
-      // back end return => "2013-06-25 06:59:25"
-      // front end need timestamp => 1372114765000
-      get() {
-        return (+new Date(this.postForm.display_time))
-      },
-      set(val) {
-        this.postForm.display_time = new Date(val)
-      }
-    }
-  },
-  created() {
-    if (this.isEdit) {
-      const id = this.$route.params && this.$route.params.id
-      this.fetchData(id)
-    }
-
-    // Why need to make a copy of this.$route here?
-    // Because if you enter this page and quickly switch tag, may be in the execution of the setTagsViewTitle function, this.$route is no longer pointing to the current page
-    // https://github.com/PanJiaChen/vue-element-admin/issues/1221
-    this.tempRoute = Object.assign({}, this.$route)
-  },
-  methods: {
-    fetchData(id) {
-      fetchArticle(id).then(response => {
-        this.postForm = response.data
-
-        // just for test
-        this.postForm.title += `   Article Id:${this.postForm.id}`
-        this.postForm.content_short += `   Article Id:${this.postForm.id}`
-
-        // set tagsview title
-        this.setTagsViewTitle()
-
-        // set page title
-        this.setPageTitle()
-      }).catch(err => {
-        console.log(err)
-      })
-    },
-    setTagsViewTitle() {
-      const title = this.lang === 'zh' ? '编辑文章' : 'Edit Article'
-      const route = Object.assign({}, this.tempRoute, { title: `${title}-${this.postForm.id}` })
-      this.$store.dispatch('tagsView/updateVisitedView', route)
-    },
-    setPageTitle() {
-      const title = 'Edit Article'
-      document.title = `${title} - ${this.postForm.id}`
-    },
-    submitForm() {
-      console.log(this.postForm)
-      this.$refs.postForm.validate(valid => {
-        if (valid) {
-          this.loading = true
-          this.$notify({
-            title: '成功',
-            message: '发布文章成功',
-            type: 'success',
-            duration: 2000
-          })
-          this.postForm.status = 'published'
-          this.loading = false
-        } else {
-          console.log('error submit!!')
-          return false
-        }
-      })
-    },
-    draftForm() {
-      if (this.postForm.content.length === 0 || this.postForm.title.length === 0) {
-        this.$message({
-          message: '请填写必要的标题和内容',
-          type: 'warning'
-        })
-        return
-      }
-      this.$message({
-        message: '保存成功',
-        type: 'success',
-        showClose: true,
-        duration: 1000
-      })
-      this.postForm.status = 'draft'
-    },
-    getRemoteUserList(query) {
-      searchUser(query).then(response => {
-        if (!response.data.items) return
-        this.userListOptions = response.data.items.map(v => v.name)
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "~@/styles/mixin.scss";
-
-.createPost-container {
-  position: relative;
-
-  .createPost-main-container {
-    padding: 40px 45px 20px 50px;
-
-    .postInfo-container {
-      position: relative;
-      @include clearfix;
-      margin-bottom: 10px;
-
-      .postInfo-container-item {
-        float: left;
-      }
-    }
-  }
-
-  .word-counter {
-    width: 40px;
-    position: absolute;
-    right: 10px;
-    top: 0px;
-  }
-}
-
-.article-textarea ::v-deep {
-  textarea {
-    padding-right: 40px;
-    resize: none;
-    border: none;
-    border-radius: 0px;
-    border-bottom: 1px solid #bfcbd9;
-  }
-}
-</style>

+ 0 - 41
src/views/example/components/Dropdown/Comment.vue

@@ -1,41 +0,0 @@
-<template>
-  <el-dropdown :show-timeout="100" trigger="click">
-    <el-button plain>
-      {{ !comment_disabled?'Comment: opened':'Comment: closed' }}
-      <i class="el-icon-caret-bottom el-icon--right" />
-    </el-button>
-    <el-dropdown-menu slot="dropdown" class="no-padding">
-      <el-dropdown-item>
-        <el-radio-group v-model="comment_disabled" style="padding: 10px;">
-          <el-radio :label="true">
-            Close comment
-          </el-radio>
-          <el-radio :label="false">
-            Open comment
-          </el-radio>
-        </el-radio-group>
-      </el-dropdown-item>
-    </el-dropdown-menu>
-  </el-dropdown>
-</template>
-
-<script>
-export default {
-  props: {
-    value: {
-      type: Boolean,
-      default: false
-    }
-  },
-  computed: {
-    comment_disabled: {
-      get() {
-        return this.value
-      },
-      set(val) {
-        this.$emit('input', val)
-      }
-    }
-  }
-}
-</script>

+ 0 - 46
src/views/example/components/Dropdown/Platform.vue

@@ -1,46 +0,0 @@
-<template>
-  <el-dropdown :hide-on-click="false" :show-timeout="100" trigger="click">
-    <el-button plain>
-      Platfroms({{ platforms.length }})
-      <i class="el-icon-caret-bottom el-icon--right" />
-    </el-button>
-    <el-dropdown-menu slot="dropdown" class="no-border">
-      <el-checkbox-group v-model="platforms" style="padding: 5px 15px;">
-        <el-checkbox v-for="item in platformsOptions" :key="item.key" :label="item.key">
-          {{ item.name }}
-        </el-checkbox>
-      </el-checkbox-group>
-    </el-dropdown-menu>
-  </el-dropdown>
-</template>
-
-<script>
-export default {
-  props: {
-    value: {
-      required: true,
-      default: () => [],
-      type: Array
-    }
-  },
-  data() {
-    return {
-      platformsOptions: [
-        { key: 'a-platform', name: 'a-platform' },
-        { key: 'b-platform', name: 'b-platform' },
-        { key: 'c-platform', name: 'c-platform' }
-      ]
-    }
-  },
-  computed: {
-    platforms: {
-      get() {
-        return this.value
-      },
-      set(val) {
-        this.$emit('input', val)
-      }
-    }
-  }
-}
-</script>

+ 0 - 38
src/views/example/components/Dropdown/SourceUrl.vue

@@ -1,38 +0,0 @@
-<template>
-  <el-dropdown :show-timeout="100" trigger="click">
-    <el-button plain>
-      Link
-      <i class="el-icon-caret-bottom el-icon--right" />
-    </el-button>
-    <el-dropdown-menu slot="dropdown" class="no-padding no-border" style="width:400px">
-      <el-form-item label-width="0px" style="margin-bottom: 0px" prop="source_uri">
-        <el-input v-model="source_uri" placeholder="Please enter the content">
-          <template slot="prepend">
-            URL
-          </template>
-        </el-input>
-      </el-form-item>
-    </el-dropdown-menu>
-  </el-dropdown>
-</template>
-
-<script>
-export default {
-  props: {
-    value: {
-      type: String,
-      default: ''
-    }
-  },
-  computed: {
-    source_uri: {
-      get() {
-        return this.value
-      },
-      set(val) {
-        this.$emit('input', val)
-      }
-    }
-  }
-}
-</script>

+ 0 - 3
src/views/example/components/Dropdown/index.js

@@ -1,3 +0,0 @@
-export { default as CommentDropdown } from './Comment'
-export { default as PlatformDropdown } from './Platform'
-export { default as SourceUrlDropdown } from './SourceUrl'

+ 0 - 10
src/views/example/components/Warning.vue

@@ -1,10 +0,0 @@
-<template>
-  <aside>
-    {{ $t('example.warning') }}
-    <a
-      href="https://panjiachen.github.io/vue-element-admin-site/guide/essentials/tags-view.html"
-      target="_blank"
-    >Document</a>
-  </aside>
-</template>
-

+ 0 - 13
src/views/example/create.vue

@@ -1,13 +0,0 @@
-<template>
-  <article-detail :is-edit="false" />
-</template>
-
-<script>
-import ArticleDetail from './components/ArticleDetail'
-
-export default {
-  name: 'CreateArticle',
-  components: { ArticleDetail }
-}
-</script>
-

+ 0 - 13
src/views/example/edit.vue

@@ -1,13 +0,0 @@
-<template>
-  <article-detail :is-edit="true" />
-</template>
-
-<script>
-import ArticleDetail from './components/ArticleDetail'
-
-export default {
-  name: 'EditForm',
-  components: { ArticleDetail }
-}
-</script>
-

+ 0 - 112
src/views/example/list.vue

@@ -1,112 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-table v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%">
-      <el-table-column align="center" label="ID" width="80">
-        <template slot-scope="scope">
-          <span>{{ scope.row.id }}</span>
-        </template>
-      </el-table-column>
-
-      <el-table-column width="180px" align="center" label="Date">
-        <template slot-scope="scope">
-          <span>{{ scope.row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
-        </template>
-      </el-table-column>
-
-      <el-table-column width="120px" align="center" label="Author">
-        <template slot-scope="scope">
-          <span>{{ scope.row.author }}</span>
-        </template>
-      </el-table-column>
-
-      <el-table-column width="100px" label="Importance">
-        <template slot-scope="scope">
-          <svg-icon v-for="n in +scope.row.importance" :key="n" icon-class="star" class="meta-item__icon" />
-        </template>
-      </el-table-column>
-
-      <el-table-column class-name="status-col" label="Status" width="110">
-        <template slot-scope="{row}">
-          <el-tag :type="row.status | statusFilter">
-            {{ row.status }}
-          </el-tag>
-        </template>
-      </el-table-column>
-
-      <el-table-column min-width="300px" label="Title">
-        <template slot-scope="{row}">
-          <router-link :to="'/example/edit/'+row.id" class="link-type">
-            <span>{{ row.title }}</span>
-          </router-link>
-        </template>
-      </el-table-column>
-
-      <el-table-column align="center" label="Actions" width="120">
-        <template slot-scope="scope">
-          <router-link :to="'/example/edit/'+scope.row.id">
-            <el-button type="primary" size="small" icon="el-icon-edit">
-              Edit
-            </el-button>
-          </router-link>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
-  </div>
-</template>
-
-<script>
-import { fetchList } from '@/api/article'
-import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
-
-export default {
-  name: 'ArticleList',
-  components: { Pagination },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        published: 'success',
-        draft: 'info',
-        deleted: 'danger'
-      }
-      return statusMap[status]
-    }
-  },
-  data() {
-    return {
-      list: null,
-      total: 0,
-      listLoading: true,
-      listQuery: {
-        page: 1,
-        limit: 20
-      }
-    }
-  },
-  created() {
-    this.getList()
-  },
-  methods: {
-    getList() {
-      this.listLoading = true
-      fetchList(this.listQuery).then(response => {
-        this.list = response.data.items
-        this.total = response.data.total
-        this.listLoading = false
-      })
-    }
-  }
-}
-</script>
-
-<style scoped>
-.edit-input {
-  padding-right: 100px;
-}
-.cancel-btn {
-  position: absolute;
-  right: 15px;
-  top: 10px;
-}
-</style>

+ 2 - 2
src/views/file/export.vue

@@ -104,7 +104,7 @@
           <!--            </el-dropdown>-->
           <!--          </template>-->
           <!--        </el-table-column>-->
-        </el-table-column>
+<!--        </el-table-column>-->
       </el-table>
       <!--      <div class="white-box-footer"
       >-->
@@ -168,7 +168,7 @@ export default {
   },
   methods: {
     singleDownload(row) {
-      const url = (row.REMOTE_URL) ? row.REMOTE_URL : process.env.VUE_APP_CDN_API + '/' + 'upload/excel_export' + '/' + row.FILE_NAME
+      const url = (row.REMOTE_URL) ? row.REMOTE_URL : process.env.VUE_APP_BASE_DO_API + '/' + 'upload/excel_export' + '/' + row.FILE_NAME
       window.open(url)
     },
     handleSelectionChange(val) {

+ 16 - 17
src/views/finance/balance-audit-list.vue

@@ -96,7 +96,7 @@
             <el-form-item :label="$t('table.remark')"><!-- 备注 -->
               <el-input v-model="form.remark"></el-input>
             </el-form-item>
-            <el-form-item :label="$t('financial.forgeDisplayRemark')"><!-- 备注前台显示 -->
+            <el-form-item :label="$t('financial.forgeDisplayRemark')" v-show="false"><!-- 备注前台显示 -->
               <el-switch v-model="form.isShow" active-value="1" inactive-value="0">
               </el-switch>
             </el-form-item>
@@ -132,7 +132,7 @@
                            :key="item.ID"></el-option>
               </el-select>
             </el-form-item>
-            <el-form-item :label="$t('financial.forgeDisplayRemark')"><!-- 备注前台显示 -->
+            <el-form-item :label="$t('financial.forgeDisplayRemark')" v-show="false"><!-- 备注前台显示 -->
               <el-switch v-model="form.isShow" active-value="1" inactive-value="0">
               </el-switch>
             </el-form-item>
@@ -148,17 +148,17 @@
       </div>
     </div>
   </template>
-  
+
   <script>
     import tool from '@/utils/tool'
-    import {getOperatingSystem} from "@/utils"
+		import {getOperatingSystem, getScreenWidth} from "@/utils"
     import FilterUser from '@/components/FilterUser'
     import baseInfo from '@/utils/baseInfo'
     import permission from '@/utils/permission'
     import Pagination from '@/components/Pagination'
     import filterHelper from '@/utils/filterHelper'
     import { getChangeBalanceType, balanceAuditList, balanceAuditListExport, balanceAuditDelete, multPoint, balanceAudit, balanceAuditGet, balanceAuditPass } from '@/api/finance'
-  
+
     export default {
       name: 'leo-balance-audit-table',
       components: {FilterUser,Pagination},
@@ -168,13 +168,13 @@
           this.dealTypes = response.data.dealTypes
           this.getData()
         })
-        let system =  getOperatingSystem()
-        if (system == "Android" || system == 'ios') {
-          this.fixedColumn = false
-        } else {
-          this.fixedColumn = 'right'
-        }
-        
+        // let system =  getOperatingSystem()
+        // if (system == "Android" || system == 'ios') {
+        //   this.fixedColumn = false
+        // } else {
+        //   this.fixedColumn = 'right'
+        // }
+				this.fixedColumn = getScreenWidth() < 500 ? false : 'right'
       },
       data() {
         return {
@@ -332,7 +332,7 @@
         },
         // 审核拒绝
         handleAudit(row = null, status, minus = false) {
-          let obj = this  
+          let obj = this
           let title = this.$t('financial.handleAuditDefaultNotice')  //确定要通过审核(会员账户不允许为负数)?备注:
           if (status === 'reject') {
             title = this.$t('financial.handleAuditRejectNotice') //确定要拒绝审核?备注
@@ -403,8 +403,8 @@
                 message: err,
                 type: 'error'
               })
-            })  
-            
+            })
+
           })
         },
         handleSelectionChange(val) {
@@ -467,7 +467,7 @@
       }
     }
   </script>
-  
+
   <style scoped>
   /deep/ .form-dialog .el-input {
     width:100% !important;
@@ -476,4 +476,3 @@
     width:100% !important;
   }
   </style>
-  

+ 1 - 0
src/views/finance/change-balance-opt.vue

@@ -40,6 +40,7 @@
               </el-form-item>
               <!--备注前台显示-->
               <!-- <el-form-item :label="$t('financial.forgeDisplayRemark')">
+              <el-form-item :label="$t('financial.forgeDisplayRemark')" v-show="false">
                 <el-switch v-model="form.isShow" active-value="1" inactive-value="0">
                 </el-switch>
               </el-form-item> -->

+ 16 - 16
src/views/finance/withdraw.vue

@@ -89,7 +89,7 @@
           </el-table-column>
         </el-table>
         <div class="white-box-footer">
-  
+
           <el-dropdown size="small" trigger="click" @command="handleMuli"
                        v-if="filterStatus!=='-1' && filterStatus!=='6' && filterStatus!=='7' && (permission.hasPermission(`finance/withdraw-status`))">
             <el-button type="primary" size="small">
@@ -113,7 +113,7 @@
   <!--            <el-dropdown-item command="3">Batch set to be paid</el-dropdown-item>&lt;!&ndash; 批量设为待付款 &ndash;&gt;-->
   <!--          </el-dropdown-menu>-->
           </el-dropdown>
-  
+
           <el-button type="success" size="small" @click="handleExport"
                      v-show="permission.hasPermission(`finance/transfer-list-export`)">{{ $t('common.exportExcel') }}
           </el-button>
@@ -197,7 +197,7 @@
       </div>
     </div>
   </template>
-  
+
   <script>
   import permission from '@/utils/permission'
   import { withdrawList, withdrawExport, multPoint, postWithdrawStatus } from '@/api/finance'
@@ -206,19 +206,19 @@
   import baseInfo from '@/utils/baseInfo'
   import Pagination from '@/components/Pagination'
   import filterHelper from '@/utils/filterHelper'
-  import {getOperatingSystem} from "@/utils"
+	import {getOperatingSystem, getScreenWidth} from "@/utils"
 
   export default {
     name: 'finance_withdraw',
     components: {FilterUser, Pagination},
-  
+
     data () {
       return {
         fixedColumn:false, // 固定,当手机端不固定,pc固定
         activeName: 'all',
         tableHeaders: null,
         baseDecLevels: baseInfo.decLevels(),
-  
+
         allData: null,
         tableData: null,
         loading: true,
@@ -298,12 +298,13 @@
     },
     mounted () {
       this.getData()
-      let system =  getOperatingSystem()
-      if (system == "Android" || system == 'ios') {
-        this.fixedColumn = false
-      } else {
-        this.fixedColumn = 'right'
-      }
+			this.fixedColumn = getScreenWidth() < 500 ? false : 'right'
+      // let system =  getOperatingSystem()
+      // if (system == "Android" || system == 'ios') {
+      //   this.fixedColumn = false
+      // } else {
+      //   this.fixedColumn = 'right'
+      // }
       // if (permission.hasPermission(`finance/withdraw-7`)) {
       //   this.activeName = 'seven'
       // }
@@ -329,7 +330,7 @@
       //   this.activeName = 'all'
       // }
     },
-  
+
     methods: {
       handleMuli (command) {
         if (this.multipleSelection.length < 1) {
@@ -552,11 +553,10 @@
     }
   }
   </script>
-  
+
   <style scoped>
   /deep/ .el-date-editor.el-input {
     width:100% !important;
   }
- 
+
   </style>
-  

+ 32 - 27
src/views/shop/index.vue

@@ -41,7 +41,7 @@
             </template></el-table-column>-->
         </el-table>
         <div class="white-box-footer">
-  
+
          <!-- <el-dropdown size="small" trigger="click">
               <el-button type="primary" size="small">
                   所选数据<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>
@@ -53,7 +53,7 @@
           <el-button type="primary" size="small" @click="handlestate" icon="el-icon-plus" v-if="permission.hasPermission(`shop/goods-add`)">
             <!-- 商品添加 -->{{ $t('shop.addProduct') }}
           </el-button>
-  
+
           <el-button type="success" size="small" @click="handleExport" v-show="permission.hasPermission(`shop/goods-list-export`)">{{ $t('common.exportExcel') }}</el-button>
           <!-- <el-button-group>
             <el-button type="success" size="mini" @click.native="handleup(scope.row.ID)">上架</el-button>
@@ -63,7 +63,7 @@
         </div>
       </div>
       <el-dialog :title="$t('shop.editProducts')" :visible.sync="dialogEditFormVisible"><!-- 修改商品 -->
-        <el-form :model="form"  v-loading="dialogEditLoading">
+        <el-form :model="form"  v-loading="dialogEditLoading" label-width="130px" :label-position="labelPosition">
           <el-form-item :label="$t('shop.productName')"><!-- 商品名称 -->
             <el-input v-model="form.goodsName"></el-input>
           </el-form-item>
@@ -138,7 +138,7 @@
             <el-form-item :label="$t('shop.order')"> <!-- 排序 -->
               <el-input v-model="form.sort"></el-input>
             </el-form-item>
-            
+
             <el-form-item :label="$t('shop.uploadImages')"> <!-- 上传图片 -->
               <div class='up_load'>
                 <Upload
@@ -159,9 +159,9 @@
       </el-dialog>
     </div>
   </template>
-  
+
   <script>
-  import {getOperatingSystem} from "@/utils"
+	import {getOperatingSystem, getScreenWidth} from "@/utils"
   import tool from '@/utils/tool'
   import baseInfo from '@/utils/baseInfo'
   import FilterUser from '@/components/FilterUser'
@@ -177,14 +177,15 @@
     mounted () {
       this.getData()
       // this.$refs.up_load.successImageUrl='';
-      let system =  getOperatingSystem()
-      if (system == "Android" || system == 'ios') {
-        this.fixedColumn = false
-      } else {
-        this.fixedColumn = 'right'
-      }
+      // let system =  getOperatingSystem()
+      // if (system == "Android" || system == 'ios') {
+      //   this.fixedColumn = false
+      // } else {
+      //   this.fixedColumn = 'right'
+      // }
+			this.fixedColumn = getScreenWidth() < 500 ? false : 'right'
     },
-  
+
     data () {
       return {
         fixedColumn:false, // 固定,当手机端不固定,pc固定
@@ -248,7 +249,8 @@
         categoryType: [],
         img_show: true,
         pvDisabled: true,
-        exchangeRate: baseInfo.exchangeRate()
+        exchangeRate: baseInfo.exchangeRate(),
+        labelPosition: getScreenWidth() >= 600 ? 'left' : 'top',
       }
     },
     methods: {
@@ -321,7 +323,7 @@
             vueObj.form.taxRate = response.data.goodsInfo.TAX_RATE
             vueObj.form.coverOrigin = response.data.goodsInfo.COVER
             vueObj.form.cover = tool.getArImage(response.data.goodsInfo.COVER, '/files/')
-    
+
             this.$forceUpdate()
         }).catch(err => {
 
@@ -340,7 +342,7 @@
         //     }
         // })
         // this.form.sellType=sen_sell;
-  
+
         let sen_gift = []
         this.GiftTypeArr.map((item, index) => {
           if (item.checked) {
@@ -364,7 +366,7 @@
           })
         })
       },
-  
+
       handleDel (id = null) {
         let obj = this
         this.$confirm(this.$t('common.deleteTips'), this.$t('common.hint'), { // '确定删除选定的数据?', '提示'
@@ -447,7 +449,7 @@
             })
         })
       },
-  
+
       handleExport () {
         this.$confirm(this.$t('financial.exportNotice'), this.$t('common.hint'), { // 确定要导出当前数据吗?`, '提示'
           confirmButtonText: this.$t('common.confirm'), // 确定
@@ -485,30 +487,33 @@
       // },
     }
   }
-  
+
   </script>
-  
+
   <style scoped>
       .table-box .el-form-item__label {
           width: 100px;
           color: #99a9bf;
       }
-  
+
       .table-box .el-form-item {
           width: 30%;
           margin-right: 0;
           margin-bottom: 0;
       }
-      /deep/ .el-dialog .el-form-item__label {
+      /* /deep/ .el-dialog .el-form-item__label {
         width:100%;
         text-align: left;
+      } */
+      /deep/ img {
+        width: 100% !important;
+        height: 100% !important;
       }
+      
       @media (max-width:862px) {
-        /deep/ img { 
-          width: 100px !important;
-          height: 60px !important;
+        /deep/ .el-dialog {
+          width:100%;
         }
       }
-      
+
   </style>
-  

+ 13 - 13
src/views/shop/order-list.vue

@@ -57,26 +57,27 @@
       </el-dialog>
     </div>
   </template>
-  
+
   <script>
-  import {getOperatingSystem} from "@/utils"
+	import {getOperatingSystem, getScreenWidth} from "@/utils"
   import tool from '@/utils/tool'
   import FilterUser from '@/components/FilterUser'
   import permission from '@/utils/permission'
   import Pagination from '@/components/Pagination'
   import filterHelper from '@/utils/filterHelper'
   import { orderList, orderListExport, orderListExportPdf, deleteOrder } from '@/api/shop'
-  
+
   export default {
     name: 'shop_order-list',
     components: {FilterUser, Pagination},
     mounted () {
-      let system =  getOperatingSystem()
-      if (system == "Android" || system == 'ios') {
-        this.fixedColumn = false
-      } else {
-        this.fixedColumn = 'right'
-      }
+      // let system =  getOperatingSystem()
+      // if (system == "Android" || system == 'ios') {
+      //   this.fixedColumn = false
+      // } else {
+      //   this.fixedColumn = 'right'
+      // }
+			this.fixedColumn = getScreenWidth() < 500 ? false : 'right'
       this.getData()
     },
     data () {
@@ -167,7 +168,7 @@
           })
           return false
         }
-  
+
         // 提取订单ID
         let orderSnList = this.multipleSelection.map((item) => item.SN.value || '')
         // 去重
@@ -179,7 +180,7 @@
           })
           return false
         }
-  
+
         this.$confirm(this.$t('financial.exportNotice'), this.$t('common.hint'), { // `确定要导出当前数据吗?`, '提示'
           confirmButtonText: this.$t('common.confirm'), // 确定
           cancelButtonText: this.$t('common.cancel'), // 取消
@@ -234,7 +235,7 @@
     }
   }
   </script>
-  
+
   <style >
   @media (max-width: 720px) {
   .el-message-box {
@@ -242,4 +243,3 @@
   }
 }
   </style>
-  

+ 4 - 2
src/views/user/member-list.vue

@@ -287,8 +287,10 @@ export default {
 			closeUserData: null,
 			screenWidth: getScreenWidth() > 500 ? '500px' : getScreenWidth() + 'px',
 			labelPosition: getScreenWidth() >= 500 ? 'right' : 'top',
-			leftFixed: ['Android', 'ios'].includes(getOperatingSystem()) ? false : 'left',
-			fixed: ['Android', 'ios'].includes(getOperatingSystem()) ? false : 'right',
+			leftFixed: getScreenWidth() < 500 ? false : 'left',
+			fixed: getScreenWidth() < 500 ? false : 'right',
+			// leftFixed: ['Android', 'ios'].includes(getOperatingSystem()) ? false : 'left',
+			// fixed: ['Android', 'ios'].includes(getOperatingSystem()) ? false : 'right',
 		}
 	},
 	methods: {

+ 7 - 15
src/views/user/member-network-move.vue

@@ -178,7 +178,7 @@
 
 		<!-- 移网审核	-->
     <el-dialog :title="$t('member.reviewNetworkTransfer')" :visible.sync="dialogAuditFormVisible" :width="screenWidth" style="margin-top: -80px">
-      <el-form :model="form" label-width="230px" :label-position="labelPosition" v-loading="dialogAuditLoading" size="mini" style="padding: 10px 15px;">>
+      <el-form :model="form" label-width="230px" :label-position="labelPosition" v-loading="dialogAuditLoading" size="mini" style="padding: 10px 15px;">
         <el-form-item :label="$t('member.networkTransferType')">
           <el-select v-model="form.type" :placeholder="$t('member.selectNetworkTransferType')" style="width: 100%;">
             <el-option v-for="(item,key) in netType" :label="item.name" :value="item.id" :key="key"></el-option>
@@ -347,14 +347,10 @@
         this.auditId = row.ID
         this.dialogEditFormVisible = true
 				fetchNetworkMoveGet({ id: this.auditId }).then(response => {
-					this.$message({
-						message: response,
-						type: 'success'
-					})
 					this.dialogEditLoading = false
-					this.form = response
-					this.form.type = String(response.type)
-					this.form.location = String(response.location)
+					this.form = response.data
+					this.form.type = String(response.data.type)
+					this.form.location = String(response.data.location)
 					this.form.createRemark = this.form.remark
 				}).catch(error => {
 					this.$message({
@@ -390,14 +386,10 @@
         this.auditId = row.ID
         this.dialogAuditFormVisible = true
 				fetchNetworkMoveGet({ id: this.auditId }).then(response => {
-					this.$message({
-						message: response,
-						type: 'success'
-					})
 					this.dialogAuditLoading = false
-					this.form = response
-					this.form.type = String(response.type)
-					this.form.location = String(response.location) !== '0' ? String(response.location) : '1'
+					this.form = response.data
+					this.form.type = String(response.data.type)
+					this.form.location = String(response.data.location) !== '0' ? String(response.data.location) : '1'
 					this.form.createRemark = this.form.remark
 				}).catch(error => {
 					this.$message({

+ 5 - 5
vue.config.js

@@ -38,11 +38,11 @@ module.exports = {
       errors: true
     },
     proxy: {
-      [process.env.VUE_APP_BASE_API]:{
-        target:"http://172.17.45.3:9970",
-        changeOrigin:true,
-        pathRewrite:{
-          ["^" + process.env.VUE_APP_BASE_API] : ""
+      [process.env.VUE_APP_BASE_API]: {
+        target: 'http://192.168.31.236:81',
+        changeOrigin: true,
+        pathRewrite: {
+          ['^' + process.env.VUE_APP_BASE_API]: ''
         }
       }
     }