zhuxinbo 5 éve
szülő
commit
e1864af218

+ 147 - 147
src/api/api.js

@@ -1,147 +1,147 @@
-import {getAction, deleteAction, putAction, postAction} from '@/api/manage'
-
-////根路径
-// const doMian = "/jeecg-boot/";
-////图片预览请求地址
-// const imgView = "http://localhost:8080/jeecg-boot/sys/common/view/";
-
-//角色管理
-const addRole = (params) => postAction("/sys/role/add", params);
-const editRole = (params) => putAction("/sys/role/edit", params);
-// const getRoleList = (params)=>getAction("/sys/role/list",params);
-// const deleteRole = (params)=>deleteAction("/sys/role/delete",params);
-// const deleteRoleList = (params)=>deleteAction("/sys/role/deleteBatch",params);
-const checkRoleCode = (params) => getAction("/sys/role/checkRoleCode", params);
-const queryall = (params) => getAction("/sys/role/queryall", params);
-
-//用户管理
-const addUser = (params) => postAction("/sys/user/add", params);
-const editUser = (params) => putAction("/sys/user/edit", params);
-const queryUserRole = (params) => getAction("/sys/user/queryUserRole", params);
-const getUserList = (params) => getAction("/sys/user/list", params);
-// const deleteUser = (params)=>deleteAction("/sys/user/delete",params);
-// const deleteUserList = (params)=>deleteAction("/sys/user/deleteBatch",params);
-const frozenBatch = (params) => putAction("/sys/user/frozenBatch", params);
-//改变密码
-const changPassword = (params) => putAction("/sys/user/changPassword", params);
-//行业管理
-const getIndustryList = (params) => getAction("/industry/industry/list", params);
-const getIndustryTreeList = (params) => getAction("/industry/industry/queryTreeList", params);
-
-//验证用户是否存在
-const checkOnlyUser = (params) => getAction("/sys/user/checkOnlyUser", params);
-//权限管理
-const addPermission = (params) => postAction("/sys/permission/add", params);
-const editPermission = (params) => putAction("/sys/permission/edit", params);
-const getPermissionList = (params) => getAction("/sys/permission/list", params);
-// const deletePermission = (params)=>deleteAction("/sys/permission/delete",params);
-// const deletePermissionList = (params)=>deleteAction("/sys/permission/deleteBatch",params);
-const queryTreeList = (params) => getAction("/sys/permission/queryTreeList", params);
-const queryTreeListForRole = (params) => getAction("/sys/role/queryTreeList", params);
-const queryListAsync = (params) => getAction("/sys/permission/queryListAsync", params);
-const queryRolePermission = (params) => getAction("/sys/permission/queryRolePermission", params);
-const saveRolePermission = (params) => postAction("/sys/permission/saveRolePermission", params);
-//const queryPermissionsByUser = (params)=>getAction("/sys/permission/queryByUser",params);
-const queryPermissionsByUser = (params) => getAction("/sys/permission/getUserPermissionByToken", params);
-const loadAllRoleIds = (params) => getAction("/sys/permission/loadAllRoleIds", params);
-const getPermissionRuleList = (params) => getAction("/sys/permission/getPermRuleListByPermId", params);
-const queryPermissionRule = (params) => getAction("/sys/permission/queryPermissionRule", params);
-
-// 部门管理
-const queryDepartTreeList = (params) => getAction("/sysdepart/sysDepart/queryTreeList", params);
-const queryIdTree = (params) => getAction("/sysdepart/sysDepart/queryIdTree", params);
-const queryParentName = (params) => getAction("/sysdepart/sysDepart/queryParentName", params);
-const searchByKeywords = (params) => getAction("/sysdepart/sysDepart/searchBy", params);
-const deleteByDepartId = (params) => deleteAction("/sysdepart/sysDepart/delete", params);
-
-//日志管理
-//const getLogList = (params)=>getAction("/sys/log/list",params);
-const deleteLog = (params) => deleteAction("/sys/log/delete", params);
-const deleteLogList = (params) => deleteAction("/sys/log/deleteBatch", params);
-
-//数据字典
-const addDict = (params) => postAction("/sys/dict/add", params);
-const editDict = (params) => putAction("/sys/dict/edit", params);
-//const getDictList = (params)=>getAction("/sys/dict/list",params);
-const treeList = (params) => getAction("/sys/dict/treeList", params);
-// const delDict = (params)=>deleteAction("/sys/dict/delete",params);
-//const getDictItemList = (params)=>getAction("/sys/dictItem/list",params);
-const addDictItem = (params) => postAction("/sys/dictItem/add", params);
-const editDictItem = (params) => putAction("/sys/dictItem/edit", params);
-//const delDictItem = (params)=>deleteAction("/sys/dictItem/delete",params);
-//const delDictItemList = (params)=>deleteAction("/sys/dictItem/deleteBatch",params);
-
-//字典标签专用(通过code获取字典数组)
-export const ajaxGetDictItems = (code, params) => getAction(`/sys/dict/getDictItems/${code}`, params);
-
-//系统通告
-const doReleaseData = (params) => getAction("/sys/annountCement/doReleaseData", params);
-const doReovkeData = (params) => getAction("/sys/annountCement/doReovkeData", params);
-//获取系统访问量
-const getLoginfo = (params) => getAction("/sys/loginfo", params);
-
-const getVisitInfo = (params) => getAction("/sys/visitInfo", params);
-//数据日志访问
-// const getDataLogList = (params)=>getAction("/sys/dataLog/list",params);
-
-// 根据部门主键查询用户信息
-const queryUserByDepId = (params) => getAction("/sys/user/queryUserByDepId", params);
-
-// 查询用户角色表里的所有信息
-const queryUserRoleMap = (params) => getAction("/sys/user/queryUserRoleMap", params);
-// 重复校验
-const duplicateCheck = (params) => getAction("/sys/duplicate/check", params);
-
-export {
-  // imgView,
-  // doMian,
-  addRole,
-  editRole,
-  checkRoleCode,
-  addUser,
-  editUser,
-  queryUserRole,
-  getUserList,
-  queryall,
-  frozenBatch,
-  checkOnlyUser,
-  changPassword,
-  getPermissionList,
-  addPermission,
-  editPermission,
-  queryTreeList,
-  queryListAsync,
-  queryRolePermission,
-  saveRolePermission,
-  queryPermissionsByUser,
-  loadAllRoleIds,
-  getPermissionRuleList,
-  queryPermissionRule,
-  queryDepartTreeList,
-  queryIdTree,
-  queryParentName,
-  searchByKeywords,
-  deleteByDepartId,
-  deleteLog,
-  deleteLogList,
-  addDict,
-  editDict,
-  treeList,
-  addDictItem,
-  editDictItem,
-  doReleaseData,
-  doReovkeData,
-  getLoginfo,
-
-  getVisitInfo,
-  queryUserByDepId,
-  queryUserRoleMap,
-  duplicateCheck,
-  queryTreeListForRole,
-  getIndustryList,
-  getIndustryTreeList
-
-}
-
-
-
+import {getAction, deleteAction, putAction, postAction} from '@/api/manage'
+
+////根路径
+// const doMian = "/jeecg-boot/";
+////图片预览请求地址
+// const imgView = "http://localhost:8080/jeecg-boot/sys/common/view/";
+
+//角色管理
+const addRole = (params) => postAction("/sys/role/add", params);
+const editRole = (params) => putAction("/sys/role/edit", params);
+// const getRoleList = (params)=>getAction("/sys/role/list",params);
+// const deleteRole = (params)=>deleteAction("/sys/role/delete",params);
+// const deleteRoleList = (params)=>deleteAction("/sys/role/deleteBatch",params);
+const checkRoleCode = (params) => getAction("/sys/role/checkRoleCode", params);
+const queryall = (params) => getAction("/sys/role/queryall", params);
+
+//用户管理
+const addUser = (params) => postAction("/sys/user/add", params);
+const editUser = (params) => putAction("/sys/user/edit", params);
+const queryUserRole = (params) => getAction("/sys/user/queryUserRole", params);
+const getUserList = (params) => getAction("/sys/user/list", params);
+// const deleteUser = (params)=>deleteAction("/sys/user/delete",params);
+// const deleteUserList = (params)=>deleteAction("/sys/user/deleteBatch",params);
+const frozenBatch = (params) => putAction("/sys/user/frozenBatch", params);
+//改变密码
+const changPassword = (params) => putAction("/sys/user/changPassword", params);
+//行业管理
+const getIndustryList = (params) => getAction("/industry/industry/list", params);
+const getIndustryTreeList = (params) => getAction("/industry/industry/queryTreeList", params);
+
+//验证用户是否存在
+const checkOnlyUser = (params) => getAction("/sys/user/checkOnlyUser", params);
+//权限管理
+const addPermission = (params) => postAction("/sys/permission/add", params);
+const editPermission = (params) => putAction("/sys/permission/edit", params);
+const getPermissionList = (params) => getAction("/sys/permission/list", params);
+// const deletePermission = (params)=>deleteAction("/sys/permission/delete",params);
+// const deletePermissionList = (params)=>deleteAction("/sys/permission/deleteBatch",params);
+const queryTreeList = (params) => getAction("/sys/permission/queryTreeList", params);
+const queryTreeListForRole = (params) => getAction("/sys/role/queryTreeList", params);
+const queryListAsync = (params) => getAction("/sys/permission/queryListAsync", params);
+const queryRolePermission = (params) => getAction("/sys/permission/queryRolePermission", params);
+const saveRolePermission = (params) => postAction("/sys/permission/saveRolePermission", params);
+//const queryPermissionsByUser = (params)=>getAction("/sys/permission/queryByUser",params);
+const queryPermissionsByUser = (params) => getAction("/sys/permission/getUserPermissionByToken", params);
+const loadAllRoleIds = (params) => getAction("/sys/permission/loadAllRoleIds", params);
+const getPermissionRuleList = (params) => getAction("/sys/permission/getPermRuleListByPermId", params);
+const queryPermissionRule = (params) => getAction("/sys/permission/queryPermissionRule", params);
+
+// 部门管理
+const queryDepartTreeList = (params) => getAction("/sysdepart/sysDepart/queryTreeList", params);
+const queryIdTree = (params) => getAction("/sysdepart/sysDepart/queryIdTree", params);
+const queryParentName = (params) => getAction("/sysdepart/sysDepart/queryParentName", params);
+const searchByKeywords = (params) => getAction("/sysdepart/sysDepart/searchBy", params);
+const deleteByDepartId = (params) => deleteAction("/sysdepart/sysDepart/delete", params);
+
+//日志管理
+//const getLogList = (params)=>getAction("/sys/log/list",params);
+const deleteLog = (params) => deleteAction("/sys/log/delete", params);
+const deleteLogList = (params) => deleteAction("/sys/log/deleteBatch", params);
+
+//数据字典
+const addDict = (params) => postAction("/sys/dict/add", params);
+const editDict = (params) => putAction("/sys/dict/edit", params);
+//const getDictList = (params)=>getAction("/sys/dict/list",params);
+const treeList = (params) => getAction("/sys/dict/treeList", params);
+// const delDict = (params)=>deleteAction("/sys/dict/delete",params);
+//const getDictItemList = (params)=>getAction("/sys/dictItem/list",params);
+const addDictItem = (params) => postAction("/sys/dictItem/add", params);
+const editDictItem = (params) => putAction("/sys/dictItem/edit", params);
+//const delDictItem = (params)=>deleteAction("/sys/dictItem/delete",params);
+//const delDictItemList = (params)=>deleteAction("/sys/dictItem/deleteBatch",params);
+
+//字典标签专用(通过code获取字典数组)
+export const ajaxGetDictItems = (code, params) => getAction(`/sys/dict/getDictItems/${code}`, params);
+
+//系统通告
+const doReleaseData = (params) => getAction("/sys/annountCement/doReleaseData", params);
+const doReovkeData = (params) => getAction("/sys/annountCement/doReovkeData", params);
+//获取系统访问量
+const getLoginfo = (params) => getAction("/sys/loginfo", params);
+
+const getVisitInfo = (params) => getAction("/sys/visitInfo", params);
+//数据日志访问
+// const getDataLogList = (params)=>getAction("/sys/dataLog/list",params);
+
+// 根据部门主键查询用户信息
+const queryUserByDepId = (params) => getAction("/sys/user/queryUserByDepId", params);
+
+// 查询用户角色表里的所有信息
+const queryUserRoleMap = (params) => getAction("/sys/user/queryUserRoleMap", params);
+// 重复校验
+const duplicateCheck = (params) => getAction("/sys/duplicate/check", params);
+
+export {
+  // imgView,
+  // doMian,
+  addRole,
+  editRole,
+  checkRoleCode,
+  addUser,
+  editUser,
+  queryUserRole,
+  getUserList,
+  queryall,
+  frozenBatch,
+  checkOnlyUser,
+  changPassword,
+  getPermissionList,
+  addPermission,
+  editPermission,
+  queryTreeList,
+  queryListAsync,
+  queryRolePermission,
+  saveRolePermission,
+  queryPermissionsByUser,
+  loadAllRoleIds,
+  getPermissionRuleList,
+  queryPermissionRule,
+  queryDepartTreeList,
+  queryIdTree,
+  queryParentName,
+  searchByKeywords,
+  deleteByDepartId,
+  deleteLog,
+  deleteLogList,
+  addDict,
+  editDict,
+  treeList,
+  addDictItem,
+  editDictItem,
+  doReleaseData,
+  doReovkeData,
+  getLoginfo,
+
+  getVisitInfo,
+  queryUserByDepId,
+  queryUserRoleMap,
+  duplicateCheck,
+  queryTreeListForRole,
+  getIndustryList,
+  getIndustryTreeList
+
+}
+
+
+

+ 82 - 83
src/main.js

@@ -1,83 +1,82 @@
-import Vue from 'vue'
-import layer from 'vue-layer'
-import App from './App.vue'
-import Storage from 'vue-ls'
-import router from './router'
-import store from './store/'
-
-import {VueAxios} from "@/utils/request"
-
-import Antd from 'ant-design-vue'
-import Viser from 'viser-vue'
-import 'ant-design-vue/dist/antd.less';  // or 'ant-design-vue/dist/antd.less'
-
-import '@/permission' // permission control
-import '@/utils/filter' // base filter
-import Print from 'vue-print-nb-jeecg'
-/*import '@babel/polyfill'*/
-import VueApexCharts from 'vue-apexcharts'
-import preview from 'vue-photo-preview'
-import 'vue-photo-preview/dist/skin.css'
-
-import VuePreview from 'vue-preview';
-import promiseFinally from 'promise.prototype.finally';
-promiseFinally.shim();
-
-import md5 from 'blueimp-md5';
-Vue.prototype.$md5 = md5;
-import {
-  ACCESS_TOKEN,
-  DEFAULT_COLOR,
-  DEFAULT_THEME,
-  DEFAULT_LAYOUT_MODE,
-  DEFAULT_COLOR_WEAK,
-  SIDEBAR_TYPE,
-  DEFAULT_FIXED_HEADER,
-  DEFAULT_FIXED_HEADER_HIDDEN,
-  DEFAULT_FIXED_SIDEMENU,
-  DEFAULT_CONTENT_WIDTH_TYPE,
-  DEFAULT_MULTI_PAGE
-} from "@/store/mutation-types"
-import config from '@/defaultSettings'
-
-import JDictSelectTag from './components/dict/index.js'
-import hasPermission from '@/utils/hasPermission'
-import vueBus from '@/utils/vueBus';
-
-import JeecgComponents from '@/components/jeecg/index'
-// import iView from 'iview'
-import '!style-loader!css-loader!less-loader!./theme/index.less'
-Vue.config.productionTip = false
-// Vue.use(iView)
-Vue.use(Storage, config.storageOptions)
-Vue.use(Antd)
-Vue.use(VueAxios, router)
-Vue.use(Viser)
-Vue.use(hasPermission)
-Vue.use(JDictSelectTag)
-Vue.use(Print)
-Vue.use(VueApexCharts)
-Vue.component('apexchart', VueApexCharts)
-Vue.use(preview)
-Vue.use(vueBus);
-Vue.use(JeecgComponents);
-Vue.use(VuePreview);
-
-new Vue({
-  router,
-  store,
-  mounted() {
-    store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
-    store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
-    store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout))
-    store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader))
-    store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar))
-    store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth))
-    store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader))
-    store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak))
-    store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor))
-    store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
-    store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, true))
-  },
-  render: h => h(App)
-}).$mount('#app')
+import Vue from 'vue'
+import layer from 'vue-layer'
+import App from './App.vue'
+import Storage from 'vue-ls'
+import router from './router'
+import store from './store/'
+
+import {VueAxios} from "@/utils/request"
+
+import Antd from 'ant-design-vue'
+import Viser from 'viser-vue'
+import 'ant-design-vue/dist/antd.less';  // or 'ant-design-vue/dist/antd.less'
+
+import '@/permission' // permission control
+import '@/utils/filter' // base filter
+import Print from 'vue-print-nb-jeecg'
+/*import '@babel/polyfill'*/
+import VueApexCharts from 'vue-apexcharts'
+import preview from 'vue-photo-preview'
+import 'vue-photo-preview/dist/skin.css'
+
+import VuePreview from 'vue-preview';
+import promiseFinally from 'promise.prototype.finally';
+promiseFinally.shim();
+
+import md5 from 'blueimp-md5';
+Vue.prototype.$md5 = md5;
+import {
+  ACCESS_TOKEN,
+  DEFAULT_COLOR,
+  DEFAULT_THEME,
+  DEFAULT_LAYOUT_MODE,
+  DEFAULT_COLOR_WEAK,
+  SIDEBAR_TYPE,
+  DEFAULT_FIXED_HEADER,
+  DEFAULT_FIXED_HEADER_HIDDEN,
+  DEFAULT_FIXED_SIDEMENU,
+  DEFAULT_CONTENT_WIDTH_TYPE,
+  DEFAULT_MULTI_PAGE
+} from "@/store/mutation-types"
+import config from '@/defaultSettings'
+
+import JDictSelectTag from './components/dict/index.js'
+import hasPermission from '@/utils/hasPermission'
+import vueBus from '@/utils/vueBus';
+
+import JeecgComponents from '@/components/jeecg/index'
+// import iView from 'iview'
+import '!style-loader!css-loader!less-loader!./theme/index.less'
+Vue.config.productionTip = false
+// Vue.use(iView)
+Vue.use(Storage, config.storageOptions)
+Vue.use(Antd)
+Vue.use(VueAxios, router)
+Vue.use(Viser)
+Vue.use(hasPermission)
+Vue.use(JDictSelectTag)
+Vue.use(Print)
+Vue.use(VueApexCharts)
+Vue.component('apexchart', VueApexCharts)
+Vue.use(preview)
+Vue.use(vueBus);
+Vue.use(JeecgComponents);
+Vue.use(VuePreview);
+new Vue({
+  router,
+  store,
+  mounted() {
+    store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
+    store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
+    store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout))
+    store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader))
+    store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar))
+    store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth))
+    store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader))
+    store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak))
+    store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor))
+    store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
+    store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, true))
+  },
+  render: h => h(App)
+}).$mount('#app')

+ 1 - 1
src/mixins/JeecgListMixin.js

@@ -27,7 +27,7 @@ export const JeecgListMixin = {
           return range[0] + "-" + range[1] + " 共" + total + "条"
         },
         showQuickJumper: true,
-        showSizeChanger: true,
+        // showSizeChanger: true,
         total: 0
       },
       /* 排序参数 */

+ 23 - 0
src/mixins/ipagination.js

@@ -0,0 +1,23 @@
+export const JeecgListMixin = {
+    data() {
+      return {
+        /* 分页参数 */
+        ipagination: {
+          current: 1,
+          pageSize: 10,
+        //   pageSizeOptions: ['10', '20', '30'],
+          showTotal: (total, range) => {
+            return range[0] + "-" + range[1] + " 共" + total + "条"
+          },
+          showQuickJumper: true,
+        //   showSizeChanger: true,
+          total: 0,
+          onChange: current => {
+            // 切换分页时的回调,
+            // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
+            this.ipagination.current = current
+          }
+        },
+      }
+    }
+}

+ 0 - 9
src/views/modules/Statistics/Statistics.vue

@@ -37,19 +37,10 @@
 </style>
 <template>
   <div class="statistics">
-    <a-row class="image-list-heading vm-panel">
-      <a-row>
-        <div class="panel-heading">{{ title }}</div>
-      </a-row>
-    </a-row>
     <a-row>
       <a-col :span="24">
         <a-card :bordered="false" class="search-box">
           <time-check @getAdd="getAdd" :startValue.sync="startValue"></time-check>
-        </a-card>
-      </a-col>
-      <a-col :span="24">
-        <a-card :bordered="false" class="search-box">
           <p @click="visible = true">对比</p>
         </a-card>
       </a-col>

+ 21 - 13
src/views/modules/Statistics/accountMaterStatistics.vue

@@ -98,9 +98,11 @@ th div {
             :dataSource="data"
             bordered
             id="outTable"
-            :pagination="pagination"
+            :pagination="ipagination"
+            size="middle"
             :customRow="rowClick"
             :loading="loading"
+            :scroll="{ x: true }"
           >
             <div slot="url" slot-scope="url">
               <video class="video" :src="url" controls="controls" style="height:200px;width:112.5px">
@@ -133,6 +135,8 @@ import timeCheck from './components/timeCheck'
 import ratioModal from './components/ratioModal'
 import { mapGetters } from 'vuex'
 
+import { JeecgListMixin } from '@/mixins/ipagination'
+
 // import the component
 import Treeselect from './components/Treeselect.vue'
 
@@ -157,7 +161,9 @@ const columns = [
     dataIndex: 'url',
     key: 'url',
     align: 'center',
-    scopedSlots: { customRender: 'url' }
+    scopedSlots: { customRender: 'url' },
+    fixed: 'left',
+    width: 150
   },
   {
     title: '花费',
@@ -349,10 +355,11 @@ export default {
     ratioModal,
     Treeselect
   },
-
+  mixins: [JeecgListMixin],
   data: function() {
     return {
       title: '账户素材报表',
+
       show: true,
       timeList: [
         { label: '今天', value: 1, show: true },
@@ -372,16 +379,16 @@ export default {
       startValue: [],
       allValue: [],
       loading: false,
-      pagination: {
-        // 分页配置器
-        pageSize: 10, // 一页的数据限制
-        current: 1, // 当前页
-        onChange: current => {
-          // 切换分页时的回调,
-          // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
-          this.pagination.current = current
-        }
-      },
+      //   pagination: {
+      //     // 分页配置器
+      //     pageSize: 10, // 一页的数据限制
+      //     current: 1, // 当前页
+      //     onChange: current => {
+      //       // 切换分页时的回调,
+      //       // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
+      //       this.pagination.current = current
+      //     }
+      //   },
       rowClick: record => ({
         // 事件
         on: {
@@ -505,6 +512,7 @@ export default {
       }
       getMaterialReportByAccount(params).then(res => {
         this.data = res
+        this.ipagination.total = res.length
         this.loading = false
       })
     },

+ 1 - 1
src/views/modules/Statistics/components/lifting.vue

@@ -64,7 +64,7 @@
         :startVal="0"
         :endVal="kuaishou[typeName]"
         :duration="duration"
-        :decimals="2"
+        :decimals="typeName=='cost'||typeName=='discountCost'?2:0"
         style="overflow:auto"
       ></countTo>
       <a-icon

+ 30 - 25
src/views/modules/Statistics/components/ratioModal.vue

@@ -1,17 +1,19 @@
-
+<style>
+th div {
+  white-space: nowrap;
+}
+</style>
 <template>
   <div class="data-display-statistics">
     <a-modal title="环比展示" v-model="visible" @ok="handleOk" width="90%">
       <div v-if="url">
-        <video
-          class="video"
-          :src="url"
-          controls="controls"
-          style="height:200px;"
-          v-show="showVideo"
-        >您的浏览器不支持 video 标签。</video>
+        <video class="video" :src="url" controls="controls" style="height:200px;" v-show="showVideo">
+          您的浏览器不支持 video 标签。
+        </video>
       </div>
-      <a-button type="primary" @click="showVideo = !showVideo">{{!showVideo?"点击查看视频":"点击收起视频"}}</a-button>
+      <a-button type="primary" @click="showVideo = !showVideo">{{
+        !showVideo ? '点击查看视频' : '点击收起视频'
+      }}</a-button>
       <a-card style="width:100%;">
         <a-table
           :columns="columnsDetail"
@@ -20,24 +22,25 @@
           id="outTable"
           :pagination="false"
           :loading="loading"
+          :scroll="{ x: true }"
         >
-          <span slot="photoClickRatio" slot-scope="photoClickRatio">{{photoClickRatio|getBo}}</span>
-          <span slot="actionRatio" slot-scope="actionRatio">{{actionRatio|getBo}}</span>
-          <span slot="impression1kCost" slot-scope="impression1kCost,record">
-            <span v-if="record.statDate=='环比'">{{impression1kCost|getBo}}</span>
-            <span v-else>{{impression1kCost|toFixtwo}}</span>
+          <span slot="photoClickRatio" slot-scope="photoClickRatio">{{ photoClickRatio | getBo }}</span>
+          <span slot="actionRatio" slot-scope="actionRatio">{{ actionRatio | getBo }}</span>
+          <span slot="impression1kCost" slot-scope="impression1kCost, record">
+            <span v-if="record.statDate == '环比'">{{ impression1kCost | getBo }}</span>
+            <span v-else>{{ impression1kCost | toFixtwo }}</span>
           </span>
-          <span slot="photoClickCost" slot-scope="photoClickCost,record">
-            <span v-if="record.statDate=='环比'">{{photoClickCost|getBo}}</span>
-            <span v-else>{{photoClickCost|toFixtwo}}</span>
+          <span slot="photoClickCost" slot-scope="photoClickCost, record">
+            <span v-if="record.statDate == '环比'">{{ photoClickCost | getBo }}</span>
+            <span v-else>{{ photoClickCost | toFixtwo }}</span>
           </span>
-          <span slot="actionCost" slot-scope="actionCost,record">
-            <span v-if="record.statDate=='环比'">{{actionCost|getBo}}</span>
-            <span v-else>{{actionCost|toFixtwo}}</span>
+          <span slot="actionCost" slot-scope="actionCost, record">
+            <span v-if="record.statDate == '环比'">{{ actionCost | getBo }}</span>
+            <span v-else>{{ actionCost | toFixtwo }}</span>
           </span>
-          <span slot="conversionPrice" slot-scope="conversionPrice,record">
-            <span v-if="record.statDate=='环比'">{{conversionPrice|getBo}}</span>
-            <span v-else>{{conversionPrice|toFixtwo}}</span>
+          <span slot="conversionPrice" slot-scope="conversionPrice, record">
+            <span v-if="record.statDate == '环比'">{{ conversionPrice | getBo }}</span>
+            <span v-else>{{ conversionPrice | toFixtwo }}</span>
           </span>
         </a-table>
       </a-card>
@@ -60,7 +63,9 @@ const columnsDetail = [
     title: '日期',
     dataIndex: 'statDate',
     key: 'statDate',
-    align: 'center'
+    align: 'center',
+    fixed: 'left',
+    width: 130
   },
   {
     title: '花费',
@@ -156,7 +161,7 @@ export default {
       dataDetail: [],
       url: '',
       visible: false,
-      loading:true
+      loading: true
     }
   },
   filters: {

+ 7 - 13
src/views/modules/Statistics/materialStatistics.vue

@@ -89,7 +89,8 @@
             :dataSource="data"
             bordered
             id="outTable"
-            :pagination="pagination"
+            :pagination="ipagination"
+            size="middle"
             :customRow="rowClick"
             :loading="loading"
             :scroll="{ x: 1900 }"
@@ -126,6 +127,8 @@ import { stopOtherVideo, closeAllVideoFun } from '@/utils/videoControl' // 停
 import timeCheck from './components/timeCheck'
 import ratioModal from './components/ratioModal'
 
+import { JeecgListMixin } from '@/mixins/ipagination'
+
 var length = 0
 var active = 1
 const columns = [
@@ -323,7 +326,7 @@ export default {
     timeCheck,
     ratioModal
   },
-
+  mixins: [JeecgListMixin],
   data: function() {
     return {
       title: '素材大盘报表',
@@ -349,16 +352,6 @@ export default {
       dataYestodayDetail: [],
       dataChainRatio: [],
       loading: false,
-      pagination: {
-        // 分页配置器
-        pageSize: 10, // 一页的数据限制
-        current: 1, // 当前页
-        onChange: current => {
-          // 切换分页时的回调,
-          // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
-          this.pagination.current = current
-        }
-      },
       rowClick: record => ({
         // 事件
         on: {
@@ -425,7 +418,7 @@ export default {
       }
       this.active = checked
       active = checked
-      this.pagination.current = 1
+      this.ipagination.current = 1
       this.getList()
     },
     getList() {
@@ -447,6 +440,7 @@ export default {
             }
           })
           this.loading = false
+          this.ipagination.total = res.length
         } else {
           this.loading = false
         }

+ 4 - 11
src/views/modules/advertiser/AdvertiserList.vue

@@ -79,7 +79,9 @@
           <a @click="handleEdit(record)">编辑</a>
 
           <a-divider type="vertical"/>
-          <a @click="handleDelete(record)">删除</a>
+         <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a>删除</a>
+          </a-popconfirm>
         </span>
 
       </a-table>
@@ -298,16 +300,7 @@
         this.loadData()
       },
       handleSubmit() {
-        /*postAction(this.url.getLoginInfo).then((res) => {
-          if (res.success) {
-            alert("绑定成功");
-            this.accountName = '';
-            this.password = '';
-            this.loginType = '';
-          } else {
-            alert("绑定失败");
-          }
-        });*/
+
         let params = {};
         params.advertiserId = this.record.id;
         params.advertiser_name = this.record.name;

+ 5 - 10
src/views/modules/advertiser/ProjectList.vue

@@ -72,16 +72,11 @@
           <a @click="handleEdit(record)">编辑</a>
 
           <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
+         
+          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+            <a>删除</a>
+          </a-popconfirm>
+
         </span>
 
       </a-table>

+ 86 - 4
src/views/modules/advertiser/ProjectMemberList.vue

@@ -68,7 +68,29 @@
 
     <!--  添加项目成员 -->
     <a-modal title="添加项目成员" v-model="visibleAdd" @ok="handleOkAdd">
-      <j-select-user-by-dep multiple v-model="user" @change="add"></j-select-user-by-dep>
+      <!-- /sys/user/getAllUserList -->
+      <a-select
+        v-model="appId"
+        showSearch
+        allowClear
+        mode="multiple"
+        placeholder="请选择成员"
+        optionFilterProp="children"
+        style="width: 100%"
+        @focus="handleFocus"
+        @blur="handleBlur"
+        @change="handleChange"
+        :filterOption="true"
+        @search="search"
+        :maxTagCount="1"
+      >
+        <a-select-option
+          v-for="appModel in options"
+          :key="appModel.userId + new Date().getTime()"
+          :value="appModel.userId"
+          >{{ appModel.realName }}&#12288;&#12288;{{ appModel.roleName }}</a-select-option
+        >
+      </a-select>
     </a-modal>
 
     <!-- 账号绑定 -->
@@ -201,7 +223,10 @@ export default {
       itemJson: null,
       visibleBind: false,
       bindAccountLoginUrl: '/ctop/bindAccountLogin/login',
-      bindAuthorizationUrl: '/ctop/bindAccountAuth/authorization'
+      bindAuthorizationUrl: '/ctop/bindAccountAuth/authorization',
+      appId: [],
+      list: [],
+      options: []
     }
   },
   computed: {
@@ -353,21 +378,29 @@ export default {
     },
     handleOkAdd(e) {
       console.log(e)
+
       var params = {}
       params.projectId = this.itemJson.id
       params.projectName = this.itemJson.projectName
-      params.memberArr = this.member
+      params.memberArr = this.appId
 
       httpAction('/ctop/projectMember/batchAdd', params, 'post').then(res => {
         console.log(res)
         this.visibleAdd = false
-        this.user = ''
+        this.appId = []
       })
     },
     addParams(item) {
       this.visibleAdd = true
       this.itemJson = item
       console.log(this.itemJson)
+      getAction('/sys/user/getAllUserList', '').then(res => {
+        console.log(res)
+        if (res.success) {
+          this.list = res.result
+          this.options = res.result
+        }
+      })
     },
     handleAdd() {},
     handleEdit(item) {
@@ -446,6 +479,55 @@ export default {
       this.dataSource = this.dataElse.filter(item => {
         return item.projectName.toLowerCase().indexOf(this.keyWord.toLowerCase()) > -1
       })
+    },
+    handleChange(value, options) {
+      console.log(value, options)
+      //   this.appId = value
+    },
+    getElseData(value) {
+      this.getStatistics()
+    },
+    handleBlur() {
+      console.log('blur')
+    },
+    handleFocus() {
+      console.log('focus')
+      if (this.appId.length > 0) {
+        this.options = []
+        for (let i = 0; i < this.list.length; i++) {
+          for (let j = 0; j < this.appId.length; j++) {
+            if (this.list[i].userId == this.appId[j]) {
+              this.options.push(this.list[i])
+            }
+          }
+        }
+      } else {
+        this.options = this.list
+      }
+    },
+    search(value) {
+      this.options = []
+      if (value != '') {
+        this.options = this.list.filter(item => {
+          var data = item.realName + ' ' + item.roleName
+          return data.toLowerCase().indexOf(value.toLowerCase()) > -1
+        })
+        this.options = [...this.options]
+        console.log(this.options)
+      } else {
+        if (this.appId.length > 0) {
+          this.options = []
+          for (let i = 0; i < this.list.length; i++) {
+            for (let j = 0; j < this.appId.length; j++) {
+              if (this.list[i].userId == this.appId[j]) {
+                this.options.push(this.list[i])
+              }
+            }
+          }
+        } else {
+          this.options = this.list
+        }
+      }
     }
   },
   mounted() {

+ 39 - 7
src/views/modules/advertiser/modules/ProjectModal.vue

@@ -27,10 +27,23 @@
           </a-select>
         </a-form-item>
         <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="负责人">
-          <j-select-user-by-dep
-            v-decorator="['responsibleName', validatorRules.responsibleName]"
-            @change="get"
-          ></j-select-user-by-dep>
+          <a-select
+            showSearch
+            optionFilterProp="children"
+            style="width: 100%"
+            @focus="handleFocus"
+            @blur="handleBlur"
+            @change="handleChange"
+            :filterOption="filterOption"
+            v-model="resId"
+          >
+            <a-select-option
+              v-for="appModel in options"
+              :key="appModel.userId + new Date().getTime()"
+              :value="appModel.userId"
+              >{{ appModel.realName }}&#12288;&#12288;{{ appModel.roleName }}</a-select-option
+            >
+          </a-select>
         </a-form-item>
       </a-form>
     </a-spin>
@@ -78,7 +91,8 @@ export default {
         getList: '/ctop/advertiser/list'
       },
       list: [],
-      resId: ''
+      resId: '',
+      options: []
     }
   },
   created() {},
@@ -88,6 +102,18 @@ export default {
       console.log(`checked = ${e.target.value}`)
     },
     handleChange() {},
+    handleChange(value) {
+      console.log(`selected ${value}`)
+    },
+    handleBlur() {
+      console.log('blur')
+    },
+    handleFocus() {
+      console.log('focus')
+    },
+    filterOption(input, option) {
+      return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+    },
     getList() {
       var params = {}
       params.userId = this.userInfo().id
@@ -104,7 +130,6 @@ export default {
     },
     add() {
       this.edit({
-        responsibleName: this.userInfo().realname, //用户名称
         responsibleId: this.userInfo().id, //用户Id
         mediaId: '2'
       })
@@ -120,6 +145,13 @@ export default {
       this.visible = true
       this.$nextTick(() => {
         this.form.setFieldsValue(pick(this.model, 'projectName', 'advertiserId', 'responsibleName'))
+        this.resId = record.responsibleId
+        getAction('/sys/user/getAllUserList', '').then(res => {
+          console.log(res)
+          if (res.success) {
+            this.options = res.result
+          }
+        })
         //时间格式化
       })
     },
@@ -147,7 +179,7 @@ export default {
           //时间格式化
           formData.advertiserId = data.key
           formData.advertiserName = data.label
-          formData.responsibleId = that.resId == '' ? that.userInfo().id : that.resId
+          formData.responsibleId = that.resId
           formData.userId = that.userInfo().id
           httpAction(httpurl, formData, method)
             .then(res => {