tangzy
2021-06-29 6de8b8a3e3790b874045d20b77bb7aa71dcdfb37
Merge branch 'master' of http://192.168.0.105:10010/r/jfptweb-publicSecurity
12 files modified
270 ■■■■ changed files
public/index.html 2 ●●● patch | view | raw | blame | history
src/api/feedback/feedback.js 34 ●●●●● patch | view | raw | blame | history
src/config/website.js 6 ●●●● patch | view | raw | blame | history
src/lang/zh.js 6 ●●●● patch | view | raw | blame | history
src/page/index/logo.vue 6 ●●●● patch | view | raw | blame | history
src/router/views/index.js 24 ●●●● patch | view | raw | blame | history
src/store/modules/common.js 6 ●●●● patch | view | raw | blame | history
src/views/article/article.vue 18 ●●●● patch | view | raw | blame | history
src/views/dataL/homeL.vue 2 ●●● patch | view | raw | blame | history
src/views/feedbackReport/feedbackReport.vue 160 ●●●● patch | view | raw | blame | history
src/views/policeTracking/policeTracking.vue 2 ●●● patch | view | raw | blame | history
src/views/realTimePolice/real.vue 4 ●●●● patch | view | raw | blame | history
public/index.html
@@ -19,7 +19,7 @@
  <script type="text/javascript" src='https://webapi.amap.com/maps?v=1.4.11&key=7ab53b28352e55dc5754699add0ad862&plugin=AMap.PlaceSearch'></script>
  <script src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
  <link rel="icon" href="img/1.jpg">
  <title>警群联控后台管理系统</title>
  <title>群防群控后台管理系统</title>
  <style>
    html,
    body,
src/api/feedback/feedback.js
@@ -1,4 +1,5 @@
import request from '@/router/axios';
import qs from 'qs' // axios自带的工具不需要安装npm依赖
export const getList = (current, size, params) => {
  return request({
@@ -34,6 +35,16 @@
  })
}
export const getDetails = (id) => {
  return request({
    url: '/api/feedback/feedback/details',
    method: 'get',
    params: {
      id
    }
  })
}
export const remove = (ids) => {
  return request({
    url: '/api/feedback/feedback/remove',
@@ -52,6 +63,18 @@
  })
}
export const adds = (row) => {
  return request({
    url: '/api/feedback/feedback/saves',
    method: 'post',
    headers: {
      'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
    },
    data: qs.stringify(row)
  })
}
export const update = (row) => {
  return request({
    url: '/api/feedback/feedback/submit',
@@ -60,3 +83,14 @@
  })
}
export const updates = (row) => {
  return request({
    url: '/api/feedback/feedback/updates',
    method: 'post',
    headers: {
      'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
    },
    data: qs.stringify(row)
  })
}
src/config/website.js
@@ -2,10 +2,10 @@
 * 全局配置文件
 */
export default {
  title: "警群联控后台管理系统",
  title: "群防群控后台管理系统",
  logo: "S",
  key: '警群联控后台管理系统',//配置主键,目前用于存储
  indexTitle: '警群联控后台管理系统',
  key: '群防群控后台管理系统',//配置主键,目前用于存储
  indexTitle: '群防群控后台管理系统',
  clientId: 'saber', // 客户端id
  clientSecret: 'saber_secret', // 客户端密钥
  tenantMode: true, // 是否开启租户模式
src/lang/zh.js
@@ -1,6 +1,6 @@
export default {
  tip: '提示',
  title: '警群联控后台管理系统',
  title: '群防群控后台管理系统',
  logoutTip: '退出系统, 是否继续?',
  submitText: '确定',
  cancelText: '取消',
@@ -66,8 +66,8 @@
    test: '测试页面'
  },
  login: {
    title: '警群联控后台管理系统 ',
    info: '警群联控后台管理系统',
    title: '群防群控后台管理系统 ',
    info: '群防群控后台管理系统',
    tenantId: '请输入租户ID',
    username: '请输入账号',
    password: '请输入密码',
src/page/index/logo.vue
@@ -364,7 +364,7 @@
        },
      }).then(function (response) {
        var userId = JSON.parse(
          window.localStorage.getItem("警群联控后台管理系统-userInfo")
          window.localStorage.getItem("群防群控后台管理系统-userInfo")
        ).content.user_id;
        if (response.data.data.records.length > 0) {
@@ -822,7 +822,7 @@
        }
        if (window.socket.readyState == WebSocket.OPEN) {
          var userId = JSON.parse(
            window.localStorage.getItem("警群联控后台管理系统-userInfo")
            window.localStorage.getItem("群防群控后台管理系统-userInfo")
          ).content.user_id;
          window.socket.send(userId);
@@ -852,7 +852,7 @@
      Recorder.getPermission().then(() => {});
      this.videoConversationReal = true;
      var userId = JSON.parse(
        window.localStorage.getItem("警群联控后台管理系统-userInfo")
        window.localStorage.getItem("群防群控后台管理系统-userInfo")
      ).content.user_id;
      newAxios
        .post(
src/router/views/index.js
@@ -11,7 +11,7 @@
                i18n: 'dashboard'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/alarmManagement/alarmAnalysis')
                import ( /* webpackChunkName: "views" */ '@/views/realTimePolice/real')
        }]
    },
@@ -300,9 +300,9 @@
    }, {
        path: '/article',
        component: Layout,
        redirect: '/article/article',
        redirect: '/article/index',
        children: [{
            path: 'article',
            path: 'index',
            name: '资讯管理',
            meta: {
                i18n: 'article'
@@ -313,9 +313,9 @@
    }, {
        path: '/feedbackReport',
        component: Layout,
        redirect: '/feedbackReport/feedbackReport',
        redirect: '/feedbackReport/index',
        children: [{
            path: 'feedbackReport',
            path: 'index',
            name: '取证上报',
            meta: {
                i18n: 'feedbackReport'
@@ -406,10 +406,10 @@
    },
    {
        path: '/patrolManagement',
        redirect: '/policeInformationDistribution/patrolManagement',
        redirect: '/policeInformationDistribution/index',
        component: Layout,
        children: [{
            path: 'patrolManagement',
            path: 'index',
            name: '巡逻管理',
            meta: {
                i18n: 'policeInformationDistribution'
@@ -418,17 +418,17 @@
                import ( /* webpackChunkName: "views" */ '@/views/policeInformationDistribution/patrolManagement')
        }]
    }, {
        path: '/policeInformationDistribution',
        redirect: '/policeInformationDistribution/policeManagementTeam',
        path: '/security',
        redirect: '/security/index',
        component: Layout,
        children: [{
            path: 'policeManagementTeam',
            name: '处警队伍管理',
            path: 'index',
            name: '保安管理',
            meta: {
                i18n: 'policeInformationDistribution'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/policeInformationDistribution/policeManagementTeam')
                import ( /* webpackChunkName: "views" */ '@/views/security/security')
        }]
    }, {
        path: '/report',
src/store/modules/common.js
@@ -1,6 +1,6 @@
/*
 * @Descripttion:
 * @version:
 * @Descripttion:
 * @version:
 * @Author: song
 * @Date: 2021-01-26 08:56:33
 * @LastEditors: song
@@ -17,7 +17,7 @@
  state: {
    language: getStore({name: 'language'}) || 'zh',
    isCollapse: true,
    isCollapse: false,
    isFullScren: false,
    isMenu: true,
    isShade: false,
src/views/article/article.vue
@@ -100,10 +100,10 @@
            },
            {
              label: "发布时间",
              prop: "datetime",
              prop: "dateTime",
              type: "datetime",
              format: "yyyy-MM-dd hh:mm:ss",
              valueFormat: "yyyy-MM-dd hh:mm:ss",
              format: "yyyy-MM-dd HH:mm:ss",
              valueFormat: "yyyy-MM-dd HH:mm:ss",
              searchRange:true,
              hide: true,
              addDisplay: false,
@@ -123,8 +123,8 @@
              editDisplay: false,
              viewDisplay: false,
              type: "date",
              format: "yyyy-MM-dd hh:mm:ss",
              valueFormat: "yyyy-MM-dd hh:mm:ss"
              format: "yyyy-MM-dd HH:mm:ss",
              valueFormat: "yyyy-MM-dd HH:mm:ss"
            },
            {
              label: "资讯内容",
@@ -268,15 +268,15 @@
        this.onLoad(this.page, this.query);
      },
      onLoad(page, params = {}) {
        const {datetime} = this.query;
        const {dateTime} = this.query;
        let values = {
          ...params,
        };
        if (datetime) {
        if (dateTime) {
          values = {
            ...params,
            startTime: datetime[0],
            endTime: datetime[1],
            startTime: dateTime[0],
            endTime: dateTime[1],
            ...this.query
          };
          values.datetime = null;
src/views/dataL/homeL.vue
@@ -1,7 +1,7 @@
<template>
  <div id="homeL">
    <div class="homeL-up">
      <span class="h1">警群联控后台管理系统</span>
      <span class="h1">群防群控后台管理系统</span>
<!--      <span class="h2">IoT security cloud service platform</span>-->
    </div>
    <div class="homeL-bar">
src/views/feedbackReport/feedbackReport.vue
@@ -29,10 +29,12 @@
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
  import {getListReport, getDetail, add, update, remove} from "@/api/feedback/feedback";
  import {getListReport, getDetails, adds, updates, remove} from "@/api/feedback/feedback";
    import {getBaTree} from "@/api/client/client";
  import {mapGetters} from "vuex";
  export default {
@@ -53,24 +55,44 @@
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
          labelWidth: '125',
          dialogWidth: 1150,
          border: false,
          stripe:true,
          index: true,
          viewBtn: true,
          selection: true,
          dialogClickModal: false,
          images:[],
          videos:[],
          column: [
            {
              label: "上报人姓名",
              prop: "sname",
              search:true,
              searchLabelWidth:100,
              searchSpan: 5,
              searchSpan:5,
              addDisplay:false,
              editDisplay:false
            },
            {
              label: "上报人姓名",
              prop: "snumber",
              type: "tree",
              dicUrl: "/api/catalogs/catalogs/getBigTree",
              props: {
                label: "title"
              },
              width: 72,
              hide: true,
              addDisplay: true,
              editDisplay: true,
              viewDisplay: false,
              rules: [{
                required: true,
                message: "请输入上报人姓名",
                message: "请选择上报人",
                trigger: "blur"
              }]
              }],
            },
            {
              label: "上报地址",
@@ -96,42 +118,75 @@
              type: "datetime",
              format: "yyyy-MM-dd HH:mm:ss",
              valueFormat: "yyyy-MM-dd HH:mm:ss",
            },
            {
              label: "上报时间",
              prop: "dateTime",
              type: "datetime",
              format: "yyyy-MM-dd HH:mm:ss",
              valueFormat: "yyyy-MM-dd HH:mm:ss",
              searchRange: true,
              search:true,
              searchLabelWidth:100,
              searchSpan: 6,
              addDisplay:false,
              viewDisplay:false,
              editDisplay:false,
              hide:true,
              rules: [{
                required: true,
                message: "请输入上报时间",
                message: "请选择上报时间",
                trigger: "blur"
              }]
            },
            {
              label: "视频",
              prop: "feedbackVideo",
              label: '图片',
              prop: 'images',
              dataType: 'array',
              type: 'upload',
              span: 24,
              hide:true,
              viewDisplay:true,
              rules: [{
                required: true,
                message: "请输入视频位置",
                trigger: "blur"
              }]
              listType: 'picture-card',
              action: "/api/blade-resource/oss/endpoint/put-file",
              propsHttp: {
                res: "data",
                url: "link",
              }
            },
            {
              label: "照片",
              prop: "feedbackPhoto",
             {
              label: '视频',
              prop: 'videos',
              dataType: 'array',
              type: 'upload',
              accept:"video/mp4",
              hide:true,
              viewDisplay:true,
              rules: [{
                required: true,
                message: "请输入照片位置",
                trigger: "blur"
              }]
              editDisabled:true,
              listType: 'picture',
              span: 24,
              action: "http://web.byisf.com:82/blade-jfpts/depl/put-depl",
              propsHttp: {
                res: "data",
                url: "link",
              }
            },
          ]
        },
        data: []
      };
    },
    watch:{
      handler(val) {
          var that = this;
          if (val != null && val !=""){
            getBaTree(val).then(res => {
              if (res) {
                that.form.sname = res.data.data.records[0].name;
              }
            });
          }
        },
    },
    computed: {
      ...mapGetters(["permission"]),
@@ -139,8 +194,8 @@
        return {
          addBtn: this.vaildData(this.permission.feedback_add, false),
          viewBtn: this.vaildData(this.permission.feedback_view, true),
          delBtn: this.vaildData(this.permission.feedback_delete, false),
          editBtn: this.vaildData(this.permission.feedback_edit, false)
          delBtn: this.vaildData(this.permission.feedback_delete, true),
          editBtn: this.vaildData(this.permission.feedback_edit, true)
        };
      },
      ids() {
@@ -153,7 +208,32 @@
    },
    methods: {
      rowSave(row, done, loading) {
        add(row).then(() => {
        var data = {
              status:1,
              tpaddress:"",
              spaddress:"",
              sname: row.$snumber,
              snumber: row.snumber,
              stime:row.stime,
              result:row.result,
              place:row.place
          }
        if (row.images.length > 0) {
                    var imageArr = row.images;
                    imageArr.forEach( image =>{
              data.tpaddress += image + ",";
          })
                    data.tpaddress = data.tpaddress.substring(0,data.tpaddress.length-1);
                }
                if (row.videos.length > 0) {
                    //var videoArr = row.videos;
                    //videoArr.forEach( video =>{
              //data.spaddress += video + ",";
          //})
                    //data.spaddress = data.spaddress.substring(0,data.spaddress.length-1);
                    data.spaddress = row.videos;
                }
        adds(data).then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
@@ -166,7 +246,33 @@
        });
      },
      rowUpdate(row, index, done, loading) {
        update(row).then(() => {
        var data = {
              id:row.id,
              status:1,
              tpaddress:"",
              spaddress:"",
              sname: row.$snumber,
              snumber: row.snumber,
              stime:row.stime,
              result:row.result,
              place:row.place
          }
        if (row.images.length > 0) {
                    var imageArr = row.images;
                    imageArr.forEach( image =>{
              data.tpaddress += image + ",";
          })
                    data.tpaddress = data.tpaddress.substring(0,data.tpaddress.length-1);
                }
                if (row.videos.length > 0) {
                    //var videoArr = row.videos;
                    //videoArr.forEach( video =>{
              //data.spaddress += video + ",";
          //})
                    //data.spaddress = data.spaddress.substring(0,data.spaddress.length-1);
                    data.spaddress = row.videos;
                }
        updates(data).then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
@@ -219,8 +325,10 @@
      },
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
          getDetail(this.form.id).then(res => {
          getDetails(this.form.id).then(res => {
            this.form = res.data.data;
            this.images = res.data.data.images;
            this.videos = res.data.data.videos;
          });
        }
        done();
@@ -255,8 +363,8 @@
        const { dateTime } = this.query;
        let values = {
          ...params,
          status:1
        };
        if (dateTime) {
          values = {
            ...params,
src/views/policeTracking/policeTracking.vue
@@ -550,7 +550,7 @@
        var that = this;
        var userId = JSON.parse(
          window.localStorage.getItem("警群联控后台管理系统-userInfo")
          window.localStorage.getItem("群防群控后台管理系统-userInfo")
        ).content.real_name;
        if (that.form.securityArr != null && that.form.securityArr != ""){
src/views/realTimePolice/real.vue
@@ -473,7 +473,7 @@
          row.securityArr = security.substring(0, security.length - 1);
        }
        var userId = JSON.parse(
          window.localStorage.getItem("警群联控后台管理系统-userInfo")
          window.localStorage.getItem("群防群控后台管理系统-userInfo")
        ).content.real_name;
        if (row.securityArr == "" || row.securityArr == null) {
@@ -502,7 +502,7 @@
      rowUpdate(row, index, done, loading) {
        var userId = JSON.parse(
          window.localStorage.getItem("警群联控后台管理系统-userInfo")
          window.localStorage.getItem("群防群控后台管理系统-userInfo")
        ).content.real_name;
        if (typeof row.securityArr != "string") {