diff --git a/package-lock.json b/package-lock.json
index db5b134..7465b13 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -292,6 +292,11 @@
"@babel/types": "^7.18.6"
}
},
+ "@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="
+ },
"@babel/helper-validator-identifier": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
@@ -2182,6 +2187,45 @@
}
}
},
+ "@vue/compat": {
+ "version": "3.5.18",
+ "resolved": "https://registry.npmmirror.com/@vue/compat/-/compat-3.5.18.tgz",
+ "integrity": "sha512-9nJUhd2+1JBW2YRxPkF0JZ+UieK2U7FEVla+7V4d9IlzD9HztQFSFj9VVR3sy/aTIUTyEhysKvsv7geD1jEiKg==",
+ "requires": {
+ "@babel/parser": "^7.28.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.1"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="
+ },
+ "@babel/parser": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.0.tgz",
+ "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
+ "requires": {
+ "@babel/types": "^7.28.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.28.2",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.2.tgz",
+ "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
+ }
+ },
+ "source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
+ }
+ }
+ },
"@vue/compiler-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
@@ -7174,6 +7218,183 @@
"integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==",
"dev": true
},
+ "fzui-fengqun-api": {
+ "version": "1.0.1",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/fzui-fengqun-api/-/fzui-fengqun-api-1.0.1.tgz",
+ "integrity": "sha512-YjcHnNJgBsuSJwmHFetovRT20Gw/6DRrvzMFsAgQe81zX1El5ckGE6vA4zTld8LUDiSHWdrc618hNlcjC3A7qA==",
+ "requires": {
+ "core-js": "^3.6.5",
+ "vue": "^2.6.11"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.27.1",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="
+ },
+ "@babel/parser": {
+ "version": "7.28.0",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/parser/-/parser-7.28.0.tgz",
+ "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
+ "requires": {
+ "@babel/types": "^7.28.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.28.2",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/types/-/types-7.28.2.tgz",
+ "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "2.7.16",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+ "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+ "requires": {
+ "@babel/parser": "^7.23.5",
+ "postcss": "^8.4.14",
+ "prettier": "^1.18.2 || ^2.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "csstype": {
+ "version": "3.1.3",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "vue": {
+ "version": "2.7.16",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/vue/-/vue-2.7.16.tgz",
+ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+ "requires": {
+ "@vue/compiler-sfc": "2.7.16",
+ "csstype": "^3.1.0"
+ }
+ }
+ }
+ },
+ "fzui-fengqun-bpm": {
+ "version": "1.0.1",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/fzui-fengqun-bpm/-/fzui-fengqun-bpm-1.0.1.tgz",
+ "integrity": "sha512-Ym3vvUf39oNAQew+5ZFFWWCQnM68jue8NvzNtxxFHElHzdiym4fY3Ged1VYpYyaeGeNMbADKKlxNKLy/6Yj1ig==",
+ "requires": {
+ "core-js": "^3.6.5",
+ "fzui-fengqun-api": "^1.0.1",
+ "vue": "^2.6.11"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.27.1",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="
+ },
+ "@babel/parser": {
+ "version": "7.28.0",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/parser/-/parser-7.28.0.tgz",
+ "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
+ "requires": {
+ "@babel/types": "^7.28.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.28.2",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/types/-/types-7.28.2.tgz",
+ "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "2.7.16",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+ "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+ "requires": {
+ "@babel/parser": "^7.23.5",
+ "postcss": "^8.4.14",
+ "prettier": "^1.18.2 || ^2.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "csstype": {
+ "version": "3.1.3",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "vue": {
+ "version": "2.7.16",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/vue/-/vue-2.7.16.tgz",
+ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+ "requires": {
+ "@vue/compiler-sfc": "2.7.16",
+ "csstype": "^3.1.0"
+ }
+ }
+ }
+ },
+ "fzui-fengqun-vue": {
+ "version": "1.0.1",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/fzui-fengqun-vue/-/fzui-fengqun-vue-1.0.1.tgz",
+ "integrity": "sha512-UFrs02ShB9+fmEa9kuX7QLg837N1GOPURX9gRKukIM9V1dsilea1+pU/iPu8irGgE5arkOEnsm8LilxfnMILAA==",
+ "requires": {
+ "core-js": "^3.6.5",
+ "fzui-fengqun-api": "^1.0.1",
+ "fzui-fengqun-bpm": "^1.0.1",
+ "vue": "^2.6.11"
+ },
+ "dependencies": {
+ "@babel/helper-validator-identifier": {
+ "version": "7.27.1",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="
+ },
+ "@babel/parser": {
+ "version": "7.28.0",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/parser/-/parser-7.28.0.tgz",
+ "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
+ "requires": {
+ "@babel/types": "^7.28.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.28.2",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@babel/types/-/types-7.28.2.tgz",
+ "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "2.7.16",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+ "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+ "requires": {
+ "@babel/parser": "^7.23.5",
+ "postcss": "^8.4.14",
+ "prettier": "^1.18.2 || ^2.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "csstype": {
+ "version": "3.1.3",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "vue": {
+ "version": "2.7.16",
+ "resolved": "http://nexus.jwzh.online:9095/repository/npm-all/vue/-/vue-2.7.16.tgz",
+ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+ "requires": {
+ "@vue/compiler-sfc": "2.7.16",
+ "csstype": "^3.1.0"
+ }
+ }
+ }
+ },
"gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -11930,7 +12151,6 @@
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
"integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
- "dev": true,
"optional": true
},
"pretty-error": {
diff --git a/package.json b/package.json
index bbc6c0d..10b1f1c 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"@paddlejs-models/ocr": "^1.1.2",
"@paddlejs-models/ocrdet": "^0.0.3",
"@types/video.js": "^7.3.42",
+ "@vue/compat": "^3.5.18",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^0.26.0",
@@ -27,6 +28,7 @@
"el-table-infinite-scroll": "^3.0.6",
"element-plus": "2.0.2",
"file-saver": "^2.0.5",
+ "fzui-fengqun-vue": "^1.0.1",
"gifler": "^0.1.0",
"image-compressor.js": "^1.1.4",
"lodash": "^4.17.21",
diff --git a/public/textVideo/textVideo.js b/public/textVideo/textVideo.js
index faaa9bc..c5a0b1b 100644
--- a/public/textVideo/textVideo.js
+++ b/public/textVideo/textVideo.js
@@ -11,10 +11,10 @@ var audioBlob;
var isfilemode = true; // if it is in file mode
// 录音; 定义录音对象,wav格式
var rec = Recorder({
- type: "pcm",
- bitRate: 16,
- sampleRate: 16000,
- onProcess: recProcess
+ type: "pcm",
+ bitRate: 16,
+ sampleRate: 16000,
+ onProcess: recProcess
});
var sampleBuf = new Int16Array();
@@ -30,9 +30,9 @@ var totalsend = 0;
addresschange();
function addresschange() {
- var Uri = 'ws://192.168.0.232:10095';
- Uri = Uri.replace(/wss/g, "https");
- window.open(Uri, '_blank');
+ var Uri = 'ws://192.168.0.232:10095';
+ Uri = Uri.replace(/wss/g, "https");
+ // window.open(Uri, '_blank');
}
@@ -40,236 +40,236 @@ function addresschange() {
var readWavInfo = function (bytes) {
- //读取wav文件头,统一成44字节的头
- if (bytes.byteLength < 44) {
- return null;
- };
- var wavView = bytes;
- var eq = function (p, s) {
- for (var i = 0; i < s.length; i++) {
- if (wavView[p + i] != s.charCodeAt(i)) {
- return false;
- };
- };
- return true;
- };
+ //读取wav文件头,统一成44字节的头
+ if (bytes.byteLength < 44) {
+ return null;
+ };
+ var wavView = bytes;
+ var eq = function (p, s) {
+ for (var i = 0; i < s.length; i++) {
+ if (wavView[p + i] != s.charCodeAt(i)) {
+ return false;
+ };
+ };
+ return true;
+ };
- if (eq(0, "RIFF") && eq(8, "WAVEfmt ")) {
+ if (eq(0, "RIFF") && eq(8, "WAVEfmt ")) {
- var numCh = wavView[22];
- if (wavView[20] == 1 && (numCh == 1 || numCh == 2)) {//raw pcm 单或双声道
- var sampleRate = wavView[24] + (wavView[25] << 8) + (wavView[26] << 16) + (wavView[27] << 24);
- var bitRate = wavView[34] + (wavView[35] << 8);
- var heads = [wavView.subarray(0, 12)], headSize = 12;//head只保留必要的块
- //搜索data块的位置
- var dataPos = 0; // 44 或有更多块
- for (var i = 12, iL = wavView.length - 8; i < iL;) {
- if (wavView[i] == 100 && wavView[i + 1] == 97 && wavView[i + 2] == 116 && wavView[i + 3] == 97) {//eq(i,"data")
- heads.push(wavView.subarray(i, i + 8));
- headSize += 8;
- dataPos = i + 8; break;
- }
- var i0 = i;
- i += 4;
- i += 4 + wavView[i] + (wavView[i + 1] << 8) + (wavView[i + 2] << 16) + (wavView[i + 3] << 24);
- if (i0 == 12) {//fmt
- heads.push(wavView.subarray(i0, i));
- headSize += i - i0;
- }
- }
- if (dataPos) {
- var wavHead = new Uint8Array(headSize);
- for (var i = 0, n = 0; i < heads.length; i++) {
- wavHead.set(heads[i], n); n += heads[i].length;
- }
- return {
- sampleRate: sampleRate
- , bitRate: bitRate
- , numChannels: numCh
- , wavHead44: wavHead
- , dataPos: dataPos
- };
- };
- };
- };
- return null;
+ var numCh = wavView[22];
+ if (wavView[20] == 1 && (numCh == 1 || numCh == 2)) {//raw pcm 单或双声道
+ var sampleRate = wavView[24] + (wavView[25] << 8) + (wavView[26] << 16) + (wavView[27] << 24);
+ var bitRate = wavView[34] + (wavView[35] << 8);
+ var heads = [wavView.subarray(0, 12)], headSize = 12;//head只保留必要的块
+ //搜索data块的位置
+ var dataPos = 0; // 44 或有更多块
+ for (var i = 12, iL = wavView.length - 8; i < iL;) {
+ if (wavView[i] == 100 && wavView[i + 1] == 97 && wavView[i + 2] == 116 && wavView[i + 3] == 97) {//eq(i,"data")
+ heads.push(wavView.subarray(i, i + 8));
+ headSize += 8;
+ dataPos = i + 8; break;
+ }
+ var i0 = i;
+ i += 4;
+ i += 4 + wavView[i] + (wavView[i + 1] << 8) + (wavView[i + 2] << 16) + (wavView[i + 3] << 24);
+ if (i0 == 12) {//fmt
+ heads.push(wavView.subarray(i0, i));
+ headSize += i - i0;
+ }
+ }
+ if (dataPos) {
+ var wavHead = new Uint8Array(headSize);
+ for (var i = 0, n = 0; i < heads.length; i++) {
+ wavHead.set(heads[i], n); n += heads[i].length;
+ }
+ return {
+ sampleRate: sampleRate
+ , bitRate: bitRate
+ , numChannels: numCh
+ , wavHead44: wavHead
+ , dataPos: dataPos
+ };
+ };
+ };
+ };
+ return null;
};
function upfileOnchange(files) {
- this.files = [files];
- var len = this.files.length;
- for (let i = 0; i < len; i++) {
- let fileAudio = new FileReader();
- fileAudio.readAsArrayBuffer(this.files[i]);
- file_ext = this.files[i].name.split('.').pop().toLowerCase();
- var audioblob;
- fileAudio.onload = function () {
- audioblob = fileAudio.result;
- file_data_array = audioblob;
- }
+ this.files = [files];
+ var len = this.files.length;
+ for (let i = 0; i < len; i++) {
+ let fileAudio = new FileReader();
+ fileAudio.readAsArrayBuffer(this.files[i]);
+ file_ext = this.files[i].name.split('.').pop().toLowerCase();
+ var audioblob;
+ fileAudio.onload = function () {
+ audioblob = fileAudio.result;
+ file_data_array = audioblob;
+ }
- fileAudio.onerror = function (e) {
- console.log('error' + e);
- }
- }
- // for wav file, we get the sample rate
- if (file_ext == "wav") {
- for (let i = 0; i < len; i++) {
- let fileAudio = new FileReader();
- fileAudio.readAsArrayBuffer(this.files[i]);
- fileAudio.onload = function () {
- audioblob = new Uint8Array(fileAudio.result);
+ fileAudio.onerror = function (e) {
+ console.log('error' + e);
+ }
+ }
+ // for wav file, we get the sample rate
+ if (file_ext == "wav") {
+ for (let i = 0; i < len; i++) {
+ let fileAudio = new FileReader();
+ fileAudio.readAsArrayBuffer(this.files[i]);
+ fileAudio.onload = function () {
+ audioblob = new Uint8Array(fileAudio.result);
- var info = readWavInfo(audioblob);
- file_sample_rate = info.sampleRate;
- }
- }
- }
+ var info = readWavInfo(audioblob);
+ file_sample_rate = info.sampleRate;
+ }
+ }
+ }
}
function play_file() {
- var audioblob = new Blob([new Uint8Array(file_data_array)], { type: "audio/wav" });
- var audio_record = document.getElementById('audio_record');
- audio_record.src = (window.URL || webkitURL).createObjectURL(audioblob);
- audio_record.controls = true;
+ var audioblob = new Blob([new Uint8Array(file_data_array)], { type: "audio/wav" });
+ var audio_record = document.getElementById('audio_record');
+ audio_record.src = (window.URL || webkitURL).createObjectURL(audioblob);
+ audio_record.controls = true;
}
function start_file_send() {
- sampleBuf = new Uint8Array(file_data_array);
- var chunk_size = 960; // for asr chunk_size [5, 10, 5]
- while (sampleBuf.length >= chunk_size) {
- sendBuf = sampleBuf.slice(0, chunk_size);
- totalsend = totalsend + sampleBuf.length;
- sampleBuf = sampleBuf.slice(chunk_size, sampleBuf.length);
- wsconnecter.wsSend(sendBuf);
- }
- stop();
+ sampleBuf = new Uint8Array(file_data_array);
+ var chunk_size = 960; // for asr chunk_size [5, 10, 5]
+ while (sampleBuf.length >= chunk_size) {
+ sendBuf = sampleBuf.slice(0, chunk_size);
+ totalsend = totalsend + sampleBuf.length;
+ sampleBuf = sampleBuf.slice(chunk_size, sampleBuf.length);
+ wsconnecter.wsSend(sendBuf);
+ }
+ stop();
}
function stop() {
- var chunk_size = new Array(5, 10, 5);
- var request = {
- "chunk_size": chunk_size,
- "wav_name": "h5",
- "is_speaking": false,
- "chunk_interval": 10,
- "mode": getAsrMode(),
- };
- if (sampleBuf.length > 0) {
- wsconnecter.wsSend(sampleBuf);
- sampleBuf = new Int16Array();
- }
- wsconnecter.wsSend(JSON.stringify(request));
- // 控件状态更新
- isRec = false;
- if (isfilemode == false) {
- //wait 3s for asr result
- setTimeout(function () {
- wsconnecter.wsStop();
- }, 3000);
- rec.stop(function (blob, duration) {
- var audioBlob = Recorder.pcm2wav(data = { sampleRate: 16000, bitRate: 16, blob: blob },
- function (theblob, duration) {
- console.log(theblob);
- var audio_record = document.getElementById('audio_record');
- audio_record.src = (window.URL || webkitURL).createObjectURL(theblob);
- audio_record.controls = true;
- }, function (msg) {
- console.log(msg);
- }
- );
+ var chunk_size = new Array(5, 10, 5);
+ var request = {
+ "chunk_size": chunk_size,
+ "wav_name": "h5",
+ "is_speaking": false,
+ "chunk_interval": 10,
+ "mode": getAsrMode(),
+ };
+ if (sampleBuf.length > 0) {
+ wsconnecter.wsSend(sampleBuf);
+ sampleBuf = new Int16Array();
+ }
+ wsconnecter.wsSend(JSON.stringify(request));
+ // 控件状态更新
+ isRec = false;
+ if (isfilemode == false) {
+ //wait 3s for asr result
+ setTimeout(function () {
+ wsconnecter.wsStop();
+ }, 3000);
+ rec.stop(function (blob, duration) {
+ var audioBlob = Recorder.pcm2wav(data = { sampleRate: 16000, bitRate: 16, blob: blob },
+ function (theblob, duration) {
+ console.log(theblob);
+ var audio_record = document.getElementById('audio_record');
+ audio_record.src = (window.URL || webkitURL).createObjectURL(theblob);
+ audio_record.controls = true;
+ }, function (msg) {
+ console.log(msg);
+ }
+ );
- }, function (errMsg) {
- console.log("errMsg: " + errMsg);
- });
- }
- // 停止连接
+ }, function (errMsg) {
+ console.log("errMsg: " + errMsg);
+ });
+ }
+ // 停止连接
}
function getAsrMode() {
- return 'offline';
+ return 'offline';
}
function getHotwords() {
- return null
+ return null
}
function handleWithTimestamp(tmptext, tmptime) {
- if (tmptime == null || tmptime == "undefined" || tmptext.length <= 0) {
- return tmptext;
- }
- tmptext = tmptext.replace(/。|?|,|、|\?|\.|\ /g, ","); // in case there are a lot of "。"
- var words = tmptext.split(","); // split to chinese sentence or english words
- var jsontime = JSON.parse(tmptime); //JSON.parse(tmptime.replace(/\]\]\[\[/g, "],[")); // in case there are a lot segments by VAD
- var char_index = 0; // index for timestamp
- var text_withtime = "";
- for (var i = 0; i < words.length; i++) {
- if (words[i] == "undefined" || words[i].length <= 0) {
- continue;
- }
- if (/^[a-zA-Z]+$/.test(words[i])) { // if it is english
- text_withtime = text_withtime + jsontime[char_index][0] / 1000 + ":" + words[i] + "\n";
- char_index = char_index + 1; //for english, timestamp unit is about a word
- }
- else {
- text_withtime = text_withtime + jsontime[char_index][0] / 1000 + ":" + words[i] + "\n";
- char_index = char_index + words[i].length; //for chinese, timestamp unit is about a char
- }
- }
- return text_withtime;
+ if (tmptime == null || tmptime == "undefined" || tmptext.length <= 0) {
+ return tmptext;
+ }
+ tmptext = tmptext.replace(/。|?|,|、|\?|\.|\ /g, ","); // in case there are a lot of "。"
+ var words = tmptext.split(","); // split to chinese sentence or english words
+ var jsontime = JSON.parse(tmptime); //JSON.parse(tmptime.replace(/\]\]\[\[/g, "],[")); // in case there are a lot segments by VAD
+ var char_index = 0; // index for timestamp
+ var text_withtime = "";
+ for (var i = 0; i < words.length; i++) {
+ if (words[i] == "undefined" || words[i].length <= 0) {
+ continue;
+ }
+ if (/^[a-zA-Z]+$/.test(words[i])) { // if it is english
+ text_withtime = text_withtime + jsontime[char_index][0] / 1000 + ":" + words[i] + "\n";
+ char_index = char_index + 1; //for english, timestamp unit is about a word
+ }
+ else {
+ text_withtime = text_withtime + jsontime[char_index][0] / 1000 + ":" + words[i] + "\n";
+ char_index = char_index + words[i].length; //for chinese, timestamp unit is about a char
+ }
+ }
+ return text_withtime;
}
// 语音识别结果; 对jsonMsg数据解析,将识别结果附加到编辑框中
function getJsonMessage(jsonMsg) {
- var rectxt = "" + JSON.parse(jsonMsg.data)['text'];
- var asrmodel = JSON.parse(jsonMsg.data)['mode'];
- var is_final = JSON.parse(jsonMsg.data)['is_final'];
- var timestamp = JSON.parse(jsonMsg.data)['timestamp'];
- if (asrmodel == "2pass-offline" || asrmodel == "offline") {
- offline_text = offline_text + handleWithTimestamp(rectxt, timestamp); //rectxt; //.replace(/ +/g,"");
- rec_text = offline_text;
- } else {
- rec_text = rec_text + rectxt;
- }
- videoText = rec_text;
- if (is_final == true) {
- play_file();
- wsconnecter.wsStop();
- btnConnect.disabled = false;
- }
+ var rectxt = "" + JSON.parse(jsonMsg.data)['text'];
+ var asrmodel = JSON.parse(jsonMsg.data)['mode'];
+ var is_final = JSON.parse(jsonMsg.data)['is_final'];
+ var timestamp = JSON.parse(jsonMsg.data)['timestamp'];
+ if (asrmodel == "2pass-offline" || asrmodel == "offline") {
+ offline_text = offline_text + handleWithTimestamp(rectxt, timestamp); //rectxt; //.replace(/ +/g,"");
+ rec_text = offline_text;
+ } else {
+ rec_text = rec_text + rectxt;
+ }
+ videoText = rec_text;
+ if (is_final == true) {
+ play_file();
+ wsconnecter.wsStop();
+ btnConnect.disabled = false;
+ }
}
// 连接状态响应
function getConnState(connState) {
- if (connState === 0) start_file_send();
+ if (connState === 0) start_file_send();
}
// 识别启动、停止、清空操作
function start() {
- var ret = wsconnecter.wsStart();//启动连接
- return ret == 1 ? 1 : 0;
+ var ret = wsconnecter.wsStart();//启动连接
+ return ret == 1 ? 1 : 0;
}
function recProcess(buffer, powerLevel, bufferDuration, bufferSampleRate, newBufferIdx, asyncEnd) {
- if (isRec === true) {
- var data_48k = buffer[buffer.length - 1];
- var array_48k = new Array(data_48k);
- var data_16k = Recorder.SampleData(array_48k, bufferSampleRate, 16000).data;
- sampleBuf = Int16Array.from([...sampleBuf, ...data_16k]);
- var chunk_size = 960; // for asr chunk_size [5, 10, 5]
- while (sampleBuf.length >= chunk_size) {
- sendBuf = sampleBuf.slice(0, chunk_size);
- sampleBuf = sampleBuf.slice(chunk_size, sampleBuf.length);
- wsconnecter.wsSend(sendBuf);
- }
- }
+ if (isRec === true) {
+ var data_48k = buffer[buffer.length - 1];
+ var array_48k = new Array(data_48k);
+ var data_16k = Recorder.SampleData(array_48k, bufferSampleRate, 16000).data;
+ sampleBuf = Int16Array.from([...sampleBuf, ...data_16k]);
+ var chunk_size = 960; // for asr chunk_size [5, 10, 5]
+ while (sampleBuf.length >= chunk_size) {
+ sendBuf = sampleBuf.slice(0, chunk_size);
+ sampleBuf = sampleBuf.slice(chunk_size, sampleBuf.length);
+ wsconnecter.wsSend(sendBuf);
+ }
+ }
}
function getUseITN() {
- return false;
+ return false;
}
diff --git a/src/App.vue b/src/App.vue
index 1321975..c3cc271 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -12,6 +12,7 @@ import { useStore } from "vuex";
import { getItem, setItem} from "@/utils/storage";
import { generateNewStyle, writeNewStyle } from "@/utils/theme";
const { proxy } = getCurrentInstance();
+
const store = useStore();
generateNewStyle(store.getters.mainColor).then((newStyle) => {
writeNewStyle(newStyle);
diff --git a/src/api/commit.js b/src/api/commit.js
new file mode 100644
index 0000000..a229afd
--- /dev/null
+++ b/src/api/commit.js
@@ -0,0 +1,86 @@
+import request from "@/utils/request";
+const api = "/mosty-api/mosty-base";
+const gsxtApi = "/mosty-api/mosty-gsxt";
+// 查询未读消息
+export const queryYdxxPageList = (data) => {
+ return request({
+ url: api + "/fzmsg/queryYdxxPageList",
+ method: "POST",
+ data
+ });
+};
+//查看未读详情
+export const queryWdxxDetail = (data) => {
+ return request({
+ url: api + "/fzmsg/queryWdxxDetail",
+ method: "POST",
+ data
+ });
+};
+
+// 查询一睹消息
+export const queryWdxxPageList = (data) => {
+ return request({
+ url: api + "/fzmsg/queryWdxxPageList ",
+ method: "POST",
+ data
+ });
+};
+export const queryYdxxDetail = (data) => {
+ return request({
+ url: api + "/fzmsg/queryYdxxDetail",
+ method: "POST",
+ data
+ });
+};
+export const queryXxTj = (data) => {
+ return request({
+ url: api + "/fzmsg/queryXxTj",
+ method: "POST",
+ data
+ });
+};
+// 下发指令
+export const updateBkgzl = (params) => {
+ return request({
+ url: gsxtApi + "/tbGsxtBk/updateBkgzl",
+ method: "get",
+ params
+ });
+};
+// 签收
+export const qsXx = (data) => {
+ return request({
+ url: api + "/fzmsg/qsXx",
+ method: "post",
+ data
+ });
+};
+
+// 预警发送指令
+export const sendFqzl = (data) => {
+ return request({
+ url: gsxtApi + "/tbYjxx/sendFqzl",
+ method: "post",
+ data
+ });
+};
+
+// 重点人发掘发送指令
+
+export const ZdrfjSendFqzl = (data) => {
+ return request({
+ url: gsxtApi + "/tbGsxtRqfjRy/sendFqzl",
+ method: "post",
+ data
+ });
+};
+//线索流转
+
+export const qbcjSendFqzl = (data) => {
+ return request({
+ url: gsxtApi + "/qbcj/sendFqzl",
+ method: "post",
+ data
+ });
+};
diff --git a/src/api/spl.js b/src/api/spl.js
new file mode 100644
index 0000000..563fcc8
--- /dev/null
+++ b/src/api/spl.js
@@ -0,0 +1,100 @@
+import request from "@/utils/request";
+import axios from "axios";
+import qs from 'qs'; // 或者使用 URLSearchParams
+const api = "/bpm";
+// 解析数据
+export function ParsingText(data, fun) {
+ axios({
+ method: 'post',
+ url: '/chat/completions',
+ data: data,
+ headers: { 'Authorization': 'Bearer sk-064b5c53131c4046883b718f2b31c050' }
+ }).then((res) => {
+ fun(res)
+ })
+}
+
+
+//get 请求
+export const splFlvGet = (params = {}, url) => {
+ return request({
+ url: url,
+ method: "get",
+ params
+ });
+};
+
+
+
+//get 请求
+export const splGet = (params = {}, url) => {
+ return request({
+ url: api + url,
+ method: "get",
+ params
+ });
+};
+//post 请求
+export const splPost = (data = {}, url) => {
+ return request({
+ url: api + url,
+ method: "post",
+ data
+ });
+};
+//put 请求
+export const splPut = (data = {}, url) => {
+ return request({
+ url: api + url,
+ method: "put",
+ data
+ });
+};
+//put 请求
+export const splDelete = (data = {}, url) => {
+ return request({
+ url: api + url,
+ method: "delete",
+ data
+ });
+};
+
+
+
+
+export const submitProcess = (data) => {
+ return request({
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ url: api + '/process/createProcess',
+ method: 'post',
+ data: qs.stringify(data)
+ });
+};
+
+export const queryProcessNode = (data) => {
+ return request({
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ url: api + '/process/queryProcessNode',
+ method: 'post',
+ data: qs.stringify(data)
+ });
+};
+export const queryProcessNodeLog = (data) => {
+ return request({
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ url: api + '/process/queryProcessNodeLog',
+ method: 'post',
+ data: qs.stringify(data)
+ });
+};
+export const queryProcess = (data) => {
+ return request({
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+ url: api + '/process/queryProcess',
+ method: 'post',
+ data: qs.stringify(data)
+ });
+};
+
+
+
diff --git a/src/assets/css/pulic.scss b/src/assets/css/pulic.scss
index 7858e79..8b4f89b 100644
--- a/src/assets/css/pulic.scss
+++ b/src/assets/css/pulic.scss
@@ -1,19 +1,23 @@
-.h-100{
+.h-100 {
height: 100%;
}
-.w-100{
+
+.w-100 {
width: 100%;
}
-.flexcc{
-display: flex;
-justify-content: center;
-align-items: center;
+
+.flexcc {
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
-.flexcb{
+
+.flexcb {
display: flex;
justify-content: space-between;
align-items: center;
- }
+}
+
.font10 {
font-size: 10px;
}
@@ -64,12 +68,10 @@ align-items: center;
// 分割线
.divider {
- background: linear-gradient(
- 90.143958942072deg,
- rgba(14, 48, 115, 1) 0%,
- rgba(70, 159, 251, 1) 50%,
- rgba(14, 48, 115, 1) 100%
- );
+ background: linear-gradient(90.143958942072deg,
+ rgba(14, 48, 115, 1) 0%,
+ rgba(70, 159, 251, 1) 50%,
+ rgba(14, 48, 115, 1) 100%);
height: 1px;
}
@@ -137,6 +139,7 @@ align-items: center;
.relative {
position: relative;
}
+
.absolute {
position: absolute;
}
@@ -180,9 +183,11 @@ align-items: center;
.flex {
display: flex;
}
+
.flex-grow1 {
flex-grow: 1;
}
+
.shrink0 {
flex-shrink: 0;
}
@@ -190,6 +195,7 @@ align-items: center;
.flex-warp {
flex-wrap: wrap;
}
+
.flex-nowrap {
flex-wrap: nowrap;
}
@@ -200,7 +206,9 @@ align-items: center;
.just-between {
justify-content: space-between;
+
}
+
.just-around {
justify-content: space-around;
}
@@ -221,14 +229,18 @@ align-items: center;
align-items: start;
}
-.align-center {
- align-items: center;
+.align-space-around {
+ align-content: space-around;
}
.align-bottom {
align-items: flex-end;
}
+.align-center {
+ align-items: center;
+}
+
/**********文本省略***********/
.nowrap {
white-space: nowrap;
@@ -328,11 +340,11 @@ align-items: center;
}
.ww#{$i} {
- width: #{$i}+ "%";
+ width: #{$i}+"%";
}
.hh#{$i} {
- height: #{$i}+ "%";
+ height: #{$i}+"%";
}
//高度
@@ -345,24 +357,29 @@ align-items: center;
.lh#{$i} {
line-height: #{$i}px;
}
- //自适应大号字体(通常为统计数字 18-30)
- .font_size_big{
- font-size: clamp(1.125rem, -0.894rem + 2.31vw, 1.875rem);
-}
+
+ //自适应大号字体(通常为统计数字 18-30)
+ .font_size_big {
+ font-size: clamp(1.125rem, -0.894rem + 2.31vw, 1.875rem);
+ }
+
//自适应一号字体(通常为一级标题 14-18)
- .font_size_title{
+ .font_size_title {
font-size: clamp(0.875rem, 0.37rem + 0.58vw, 1.063rem);
}
+
//自适应统计字体(通常为统计数字 14-22)
- .font_size1{
+ .font_size1 {
font-size: clamp(0.875rem, -0.471rem + 1.54vw, 1.375rem);
}
- //自适应二号字体(通常为二级标题 14-16)
- .font_size2{
+
+ //自适应二号字体(通常为二级标题 14-16)
+ .font_size2 {
font-size: clamp(0.75rem, 0.077rem + 0.77vw, 1rem);
}
+
//自适应普通字体(通常为默认大小 10-14)
- .font_size_default{
+ .font_size_default {
font-size: clamp(0.625rem, -0.048rem + 0.77vw, 0.875rem);
}
}
@@ -373,6 +390,7 @@ align-items: center;
font-weight: normal;
font-style: normal;
}
+
@font-face {
font-family: "HANYILINGXINTIJIAN";
src: url("~@/assets/font/HANYILINGXINTIJIAN-1.TTF");
diff --git a/src/assets/images/tztg.png b/src/assets/images/tztg.png
new file mode 100644
index 0000000..f92f159
Binary files /dev/null and b/src/assets/images/tztg.png differ
diff --git a/src/assets/images/xtxx.png b/src/assets/images/xtxx.png
new file mode 100644
index 0000000..50444d4
Binary files /dev/null and b/src/assets/images/xtxx.png differ
diff --git a/src/assets/images/xxxt.png b/src/assets/images/xxxt.png
new file mode 100644
index 0000000..20c7d09
Binary files /dev/null and b/src/assets/images/xxxt.png differ
diff --git a/src/components/ChooseList/ChooseCl/addPeo.vue b/src/components/ChooseList/ChooseCl/addPeo.vue
index 71b9d5d..7ebd4b4 100644
--- a/src/components/ChooseList/ChooseCl/addPeo.vue
+++ b/src/components/ChooseList/ChooseCl/addPeo.vue
@@ -1,7 +1,7 @@
-
+
@@ -27,7 +27,7 @@ import ChooseMarks from "@/components/ChooseList/ChooseMarks/index.vue";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { reactive, ref, getCurrentInstance } from 'vue';
const { proxy } = getCurrentInstance();
-const { D_BZ_XB } = proxy.$dict("D_BZ_XB"); // 获取字典数据
+const { D_GS_ZDR_YJDJ ,BD_BK_CLYJBQ} = proxy.$dict("D_GS_ZDR_YJDJ",'BD_BK_CLYJBQ'); // 获取字典数据
const elform = ref()
const roleIds = ref([])
const showDialog = ref(false)
@@ -35,46 +35,42 @@ const chooseMarksVisible = ref(false)
const emit = defineEmits(['change'])
const listQuery = ref({})
const formData = ref([
- { label: "车牌号", prop: "hphm", type: "input" },
- { label: "车架号", prop: "clCjh", type: "input" },
+ { label: "车牌号", prop: "clCph", type: "input" },
{
label: "车辆颜色",
prop: "clYs",
type: "input",
},
{ label: "车辆所有人", prop: "clSyr", type: "input" },
- { label: "人员身份证", prop: "clSyrsfzh", type: "input" },
- { label: "责任单位", prop: "zrSsbmdm", depMc: 'zrSsbmmc', type: "department" },
- { label: "管辖单位", prop: "gxSsbmdm", depMc: 'gxSsbmmc', type: "department" },
- { label: "管控民警姓名", prop: "gkMjXm", type: "input" },
- { label: "管控民警警号", prop: "gkMjJh", type: "input" },
- { label: "管控原因", prop: "clLkyy", type: "textarea", width: "100%" },
+ { label: "所有人身份证号", prop: "clSyrsfzh", type: "input" },
+ { label: "所属部门", prop: "ssbmdm", type: "department" },
+ { label: "预警等级", prop: "yjdj", type: "select", options: D_GS_ZDR_YJDJ },
+ { label: "预警标签", prop: "yjbq", type: "select", options: BD_BK_CLYJBQ },
{ label: "车辆照片", prop: "fjdz", type: "upload", width: "100%" },
])
const rules = reactive({
- hphm: [{ required: true, message: "请输入车牌号", trigger: "blur" }],
- clCjh: [{ required: true, message: "请输入车架号", trigger: "blur" }],
- clYs: [{ required: true, message: "请输入车辆颜色", trigger: "blur" }],
- clSyr: [{ required: true, message: "请输入车辆所有人", trigger: "blur" }],
- clSyrsfzh: [{ required: true, message: "请输入人员身份证", trigger: "blur" }],
+ clCph: [{ required: true, message: "请输入车牌号", trigger: "blur" }],
+ yjdj: [{ required: true, message: "请选择预警等级", trigger: "change" }],
+ yjbq: [{ required: true, message: "请选择预警标签", trigger: "change" }],
+ ssbmdm:[{ required: true, message: "请选择所属部门", trigger: "change" }]
})
const init = () => {
showDialog.value = true;
}
// 选择标签
-const choosed = (val) => {
- listQuery.value.bqList = val.map(v => {
- return { bqZl: v.bqLb, bqId: v.id, bqLx: v.bqLx, bqLb: v.bqLb, bqMc: v.bqMc, bqDm: v.bqDm }
- });
- roleIds.value = val.map(v => v.id)
-}
+// const choosed = (val) => {
+// listQuery.value.bqList = val.map(v => {
+// return { bqZl: v.bqLb, bqId: v.id, bqLx: v.bqLx, bqLb: v.bqLb, bqMc: v.bqMc, bqDm: v.bqDm }
+// });
+// roleIds.value = val.map(v => v.id)
+// }
// 删除数据
-const closeTag = (idx) => {
- listQuery.value.bqList.splice(idx, 1)
- roleIds.value.splice(idx, 1)
-}
+// const closeTag = (idx) => {
+// listQuery.value.bqList.splice(idx, 1)
+// roleIds.value.splice(idx, 1)
+// }
const submitForm = () => {
elform.value.submit((val) => {
@@ -86,6 +82,7 @@ const submitForm = () => {
const close = () => {
elform.value.reset();
+ listQuery.value = {}
listQuery.value.bqList = []
roleIds.value = []
showDialog.value = false;
diff --git a/src/components/ChooseList/ChooseCl/index.vue b/src/components/ChooseList/ChooseCl/index.vue
index 5c03231..2d3b30a 100644
--- a/src/components/ChooseList/ChooseCl/index.vue
+++ b/src/components/ChooseList/ChooseCl/index.vue
@@ -1,46 +1,50 @@
- 选择布控车辆
- 添加其他车辆
+ 选择布控车辆
+ 添加其他车辆
-
-
-
-
-
-
-
-
-
-
- 查询
- 重置
-
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -56,14 +60,15 @@
@@ -197,8 +202,8 @@ watch(()=>props.modelValue,val=>{
.tabBoxRadio .el-checkbox__inner {
border-radius: 50% !important;
}
+
.tabBoxRadio .el-table__header-wrapper .el-checkbox {
display: none;
}
-
diff --git a/src/components/ChooseList/ChooseZdr/addPeo.vue b/src/components/ChooseList/ChooseZdr/addPeo.vue
index 5b2c55b..f88aa65 100644
--- a/src/components/ChooseList/ChooseZdr/addPeo.vue
+++ b/src/components/ChooseList/ChooseZdr/addPeo.vue
@@ -25,7 +25,7 @@ import ChooseMarks from "@/components/ChooseList/ChooseMarks/index.vue";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { reactive, ref,getCurrentInstance } from 'vue';
const { proxy } = getCurrentInstance();
-const { D_BZ_XB } = proxy.$dict("D_BZ_XB"); // 获取字典数据
+const { D_BZ_XB,D_GS_ZDR_YJDJ } = proxy.$dict("D_BZ_XB","D_GS_ZDR_YJDJ"); // 获取字典数据
const elform = ref()
const roleIds = ref([])
const showDialog = ref(false)
@@ -37,21 +37,26 @@ const formData = ref([
{ label: "性别", prop: "ryXb", type: "select" ,width:'45%',options:D_BZ_XB},
{ label: "身份证号", prop: "rySfzh", type: "input" ,width:'45%'},
{ label: "手机号码", prop: "ryLxdh", type: "input",width:'45%' },
- { label: "户籍地址", prop: "hjdXz", type: "input",width:'100%'},
- { label: "户籍地派出所", prop: "hjdpcsdm",depMc:'hjdpcs', type: "department" ,width:'48%'},
+ { label: "户籍地址", prop: "hjdXz", type: "input", width: '100%' },
+ { label: "户籍地派出所", prop: "hjdpcsdm", depMc: 'hjdpcs', type: "department", width: '48%' },
+ { label: "所属部门", prop: "ssbmdm", type: "department" },
{ label: "特征描述", prop: "qtTzms", type: "input" ,width:'100%'},
{ label: "人员标签", prop: "bqList", type: "slot" ,width:'100%'},
- { label: "车牌号", prop: "clCph", type: "input" ,width:'45%'},
- { label: "车架号", prop: "clCjh", type: "input" ,width:'45%'},
+ { label: "车牌号", prop: "clCph", type: "input", width: '45%' },
+ { label: "预警等级", prop: "yjdj", type: "select", options: D_GS_ZDR_YJDJ },
+ { label: "车辆识别代码", prop: "clCjh", type: "input" ,width:'45%'},
{ label: "人员照片", prop: "fjZp", type: "upload" ,width:'100%'},
])
const rules = reactive({
+ // fjZp: [{ required: true, message: "请上传人员照片", trigger: "blur" }],
ryXm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
rySfzh: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
- ryXb: [{ required: true, message: "请选择性别", trigger: "change" }],
- ryLxdh: [{ required: true, message: "请输入手机号码", trigger: "blur" }],
- hjdXz: [{ required: true, message: "请输入户籍地", trigger: "blur" }],
- xzdXz: [{ required: true, message: "请输入现居住地址", trigger: "blur" }],
+ ryXb: [{ required: true, message: "请选择性别", trigger: "change" }],
+ yjdj: [{ required: true, message: "请选择预警等级", trigger: "change" }],
+ ssbmdm:[{ required: true, message: "请选择所属部门", trigger: "change" }]
+ // ryLxdh: [{ required: true, message: "请输入手机号码", trigger: "blur" }],
+ // hjdXz: [{ required: true, message: "请输入户籍地", trigger: "blur" }],
+ // xzdXz: [{ required: true, message: "请输入现居住地址", trigger: "blur" }],
})
const init = () =>{
showDialog.value = true;
@@ -80,7 +85,9 @@ const submitForm = () =>{
}
const close = () =>{
- elform.value.reset();
+ elform.value.reset();
+ listQuery.value = {}
+
listQuery.value.bqList = []
roleIds.value = []
showDialog.value = false;
@@ -97,4 +104,4 @@ defineExpose({init})
border: 1px solid #e9e9e9;
border-radius: 4px;
}
-
\ No newline at end of file
+
diff --git a/src/components/ChooseList/ChooseZdr/index.vue b/src/components/ChooseList/ChooseZdr/index.vue
index 234c0bb..62a7390 100644
--- a/src/components/ChooseList/ChooseZdr/index.vue
+++ b/src/components/ChooseList/ChooseZdr/index.vue
@@ -39,8 +39,13 @@
-
+
+
+
+
+
+
@@ -79,7 +84,7 @@ import AddPeo from './addPeo.vue'
import { qcckGet} from "@/api/qcckApi.js";
import { defineProps, ref ,getCurrentInstance, watch} from "vue";
const { proxy } = getCurrentInstance();
-const { D_BZ_XB,D_BZ_MZ } = proxy.$dict("D_BZ_XB","D_BZ_MZ"); //获取字典数据
+const { D_BZ_XB,D_BZ_MZ,D_GS_ZDR_YJDJ } = proxy.$dict("D_BZ_XB","D_BZ_MZ",'D_GS_ZDR_YJDJ'); //获取字典数据
const props = defineProps({
modelValue: {
type: Boolean,
diff --git a/src/components/MyComponents/Department/index.vue b/src/components/MyComponents/Department/index.vue
index 9d4c8c1..8782222 100644
--- a/src/components/MyComponents/Department/index.vue
+++ b/src/components/MyComponents/Department/index.vue
@@ -106,6 +106,15 @@ const handleChange = (e) => {
if (props.multiple === true) {
const data = e.map((item) => {return item[item.length - 1];});
emits("update:modelValue", data);
+ const obj= data.map(items=>{
+ return {
+ ... depList.value.find(item=>{ return item.orgCode == items})
+ }
+ })
+ console.log(obj);
+
+ emits("getDepValue", obj);
+
} else {
const data = e ? e[e.length - 1] : "";
emits("update:modelValue", data);
diff --git a/src/components/MyComponents/Upload/index.vue b/src/components/MyComponents/Upload/index.vue
index 1ac25b3..ae8fd2e 100644
--- a/src/components/MyComponents/Upload/index.vue
+++ b/src/components/MyComponents/Upload/index.vue
@@ -5,7 +5,9 @@
:on-exceed="handleExceed" :on-success="handlerSuccess" :before-upload="beforeImgUpload">
上传文件
-
+
+
+
@@ -15,7 +17,9 @@
-
+
+
+
@@ -26,10 +30,14 @@
-
+
+
+
-
+
+
+
@@ -158,7 +166,9 @@ watch(
let arr = val ? val : [];
if (arr && arr.length > 0) {
if (!props.sfUrl) {
- fileList.value = arr.map((el) => {
+ console.log(arr, "图片");
+ if (Array.isArray(arr)) {
+ fileList.value = arr.map((el) => {
if (Object.prototype.toString.call(el) === "[object Object]") {
return {
url: `/mosty-api/mosty-base/minio/image/download/` + el,
@@ -168,6 +178,20 @@ watch(
return { url: `/mosty-api/mosty-base/minio/image/download/` + el };
}
});
+ } else {
+ const fjListData=arr.split(',')
+ fileList.value = fjListData.map((el) => {
+ if (Object.prototype.toString.call(el) === "[object Object]") {
+ return {
+ url: `/mosty-api/mosty-base/minio/image/download/` + el,
+ name: el.name
+ };
+ } else {
+ return { url: `/mosty-api/mosty-base/minio/image/download/` + el };
+ }
+ });
+ }
+
} else {
fileList.value = arr.map((el) => {
if (Object.prototype.toString.call(el) === "[object Object]") {
@@ -285,4 +309,4 @@ const propsModelValue = ref();
-webkit-line-clamp: 2;
}
}
-
\ No newline at end of file
+
diff --git a/src/components/aboutTable/FormMessage.vue b/src/components/aboutTable/FormMessage.vue
index b7bf683..4d74240 100644
--- a/src/components/aboutTable/FormMessage.vue
+++ b/src/components/aboutTable/FormMessage.vue
@@ -1,6 +1,7 @@
+
@@ -21,7 +22,7 @@
+ :multiple="item.multiple" v-model="listQuery[item.prop]" :placeholder="listQuery[item.depMc] ? listQuery[item.depMc] : '请选择'" />
diff --git a/src/components/addPerson/index.vue b/src/components/addPerson/index.vue
index 12c4a56..737ac3f 100644
--- a/src/components/addPerson/index.vue
+++ b/src/components/addPerson/index.vue
@@ -18,6 +18,7 @@
+
+
+
diff --git a/src/components/flowPath/SelectingPeople.vue b/src/components/flowPath/SelectingPeople.vue
new file mode 100644
index 0000000..116bcbf
--- /dev/null
+++ b/src/components/flowPath/SelectingPeople.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
节点
+
+
+
changePostList(index, obj)" clearable placeholder="请选择所属部门" />
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/flowPath/submissionProcess.vue b/src/components/flowPath/submissionProcess.vue
new file mode 100644
index 0000000..46f2c87
--- /dev/null
+++ b/src/components/flowPath/submissionProcess.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+ {{ item.modelName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/instructionHasBeen/sendFqzl.vue b/src/components/instructionHasBeen/sendFqzl.vue
new file mode 100644
index 0000000..8b93c1b
--- /dev/null
+++ b/src/components/instructionHasBeen/sendFqzl.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 6382a64..d346ed6 100644
--- a/src/main.js
+++ b/src/main.js
@@ -49,9 +49,10 @@ import installFilter from "@/filters";
//事件总线
import mitt from "mitt";
-import { resetForm } from "@/utils/validate";
-import { getDict, setCascader } from '@/utils/dict';
+import { resetForm } from "@/utils/validate";
+import { getDict, setCascader } from '@/utils/dict';
import axios from "axios";
+import fzui from 'fzui-fengqun-vue'
//挂载全局方法
app.config.globalProperties.resetForm = resetForm;
@@ -65,4 +66,12 @@ installElementPlus(app);
installIcons(app);
installFilter(app);
installDirective(app);
+app.use(fzui, {
+ getOwnHostLabel: () => {
+ return '/fd_api';
+ },
+ translateHostLabel: () => {
+ return '/fd_api';
+ }
+})
app.use(store).use(ELMessage).use(router).use(plugins).mount("#app");
diff --git a/src/router/index.js b/src/router/index.js
index 2596316..f71cc3a 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -16,6 +16,13 @@ import store from "@/store";
*/
export const privateRoutes = [
+
+];
+
+/**
+ * 公开路由表
+ */
+export const publicRoutes = [
{
path: "/systemConfig",
component: layout,
@@ -124,13 +131,7 @@ export const privateRoutes = [
}
}
]
- }
-];
-
-/**
- * 公开路由表
- */
-export const publicRoutes = [
+ },
{
path: "/login",
name: "login",
@@ -146,6 +147,24 @@ export const publicRoutes = [
name: "KeyPopulations",
component: () => import("@/views/KeyPopulations/index") //系统登录
},
+ // 布控审核信息
+ {
+ path: "/deploymentApproval",
+ name: "deploymentApproval",
+ component: () => import("@/views/backOfficeSystem/ApprovalInformation/deploycontrol/deploymentApproval.vue"),
+ },
+ // 线索
+ {
+ path: "/clueVerification",
+ name: "clueVerification",
+ component: () => import("@/views/backOfficeSystem/ApprovalInformation/Clue/index.vue"),
+ },
+ // 重点人发掘
+ {
+ path: "/focusExploration",
+ name: "focusExploration",
+ component: () => import("@/views/backOfficeSystem/ApprovalInformation/FocusExploration/index.vue"),
+ },
{
path: "/editPassword", // 注意:带有路径“/”的记录中的组件“默认”是一个不返回 Promise 的函数
component: layout,
@@ -365,7 +384,7 @@ export const publicRoutes = [
"@/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index"
),
meta: {
- title: "人力情报信息搜索任务调度",
+ title: "人力情报信息收集任务调度",
icon: "article"
}
},
@@ -390,15 +409,15 @@ export const publicRoutes = [
icon: "article"
}
},
- // {
- // path: "/MakeAcomment",
- // name: "MakeAcomment",
- // component: () => import("@/views/backOfficeSystem/MakeAcomment/index"),
- // meta: {
- // title: "情报评一评",
- // icon: "article"
- // }
- // }
+ {
+ path: "/MakeAcomment",
+ name: "MakeAcomment",
+ component: () => import("@/views/backOfficeSystem/MakeAcomment/index"),
+ meta: {
+ title: "情报评一评",
+ icon: "article"
+ }
+ }
]
},
{
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index 3f3826b..92cd953 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -2,7 +2,7 @@
import { publicRoutes, privateRoutes } from '@/router'
function filter(data, menus) {
- var newData = data.filter(x => menus ?.includes(x.name))
+ var newData = data.filter(x => menus?.includes(x.name))
newData.forEach(x => x.children && (x.children = filter(x.children, menus)))
return newData
}
@@ -47,7 +47,7 @@ export default {
* js 指定删除数组(树结构数据)
*/
//测试比对
- routes = filter(privateRoutes, menus)
+ // routes = filter(privateRoutes, menus)
// 最后添加 不匹配路由进入 404
routes.push({
path: '/:catchAll(.*)',
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 315041e..f9c26a7 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -37,7 +37,7 @@ export default {
isReady: 0,
userName: getItem("USERNAME") || "",
keepLiiveRoute: [], //需要缓存的路由
- activeId:'',//警组点击的唯一标识
+ activeId: '',//警组点击的唯一标识
}),
mutations: {
setToken(state, token) {
@@ -85,34 +85,36 @@ export default {
login(ctx, userInfo) {
const { userName, password, kaptcha } = userInfo;
return new Promise((resolve, reject) => {
- login({userName, password: Base64.encode(password), kaptcha }).then((data) => {
+ login({ userName, password: Base64.encode(password), kaptcha }).then((data) => {
if (data.deptList.length === 1) {
- this.commit("user/setToken", data.jwtToken);
- this.commit("user/setDeptId", data.deptList);
- this.commit("user/setUserName", data.userName);
- setItem('isOatuh', 0)
- setItem("USERNAME", data.userName);
- setItem("roleList", data.sysRole ? data.sysRole : []);
- setItem("SFRH", data.sfrh);
- setItem("USERID", data.userId);
- setItem("PermissionsInfo", data.permissionsInfo);
- this.commit("user/setMenuList", data.menuList);
- setItem("menusPermission", data.menuCodeSet);
- setItem("idEntityCard", data.idEntityCard);
- this.commit("user/setUserInfo", {
- token: data.jwtToken,
- permission: {
- buttonPermission: ["removeTest", "viewTest"],
- menus: data.menuCodeSet
- },
- menuList: data.menuList,
- deptList: data.deptList
- });
- }
- // 保存登录时间
- setTimeStamp();
- resolve(data);
- })
+
+ this.commit("user/setToken", data.jwtToken);
+ this.commit("user/setDeptId", data.deptList);
+ this.commit("user/setUserName", data.userName);
+ setItem('isOatuh', 0)
+ setItem('fzUserId', data.fzUserId)
+ setItem("USERNAME", data.userName);
+ setItem("roleList", data.sysRole ? data.sysRole : []);
+ setItem("SFRH", data.sfrh);
+ setItem("USERID", data.userId);
+ setItem("PermissionsInfo", data.permissionsInfo);
+ this.commit("user/setMenuList", data.menuList);
+ setItem("menusPermission", data.menuCodeSet);
+ setItem("idEntityCard", data.idEntityCard);
+ this.commit("user/setUserInfo", {
+ token: data.jwtToken,
+ permission: {
+ buttonPermission: ["removeTest", "viewTest"],
+ menus: data.menuCodeSet
+ },
+ menuList: data.menuList,
+ deptList: data.deptList
+ });
+ }
+ // 保存登录时间
+ setTimeStamp();
+ resolve(data);
+ })
.catch((err) => {
reject(err);
});
@@ -122,14 +124,16 @@ export default {
*单点登录
*/
oatuhLogin(ctx, userInfo) {
- const { token, systemId, } = userInfo;
+ const { token, systemId, } = userInfo;
return new Promise((resolve, reject) => {
unifiedLogin({ token, systemId, }).then((data) => {
if (data.deptList.length === 1) {
this.commit("user/setToken", data.jwtToken);
+
this.commit("user/setDeptId", data.deptList);
this.commit("user/setUserName", data.userName);
setItem("USERNAME", data.userName);
+ setItem('fzUserId', data.fzUserId)
setItem("SFRH", data.sfrh);
setItem("USERID", data.userId);
setItem("PermissionsInfo", data.permissionsInfo);
@@ -151,18 +155,18 @@ export default {
setTimeStamp();
resolve(data);
})
- .catch((err) => {
- reject(err);
- });
+ .catch((err) => {
+ reject(err);
+ });
});
},
refreshToken(ctx, parmas) {
return new Promise((resolve, reject) => {
refreshToken({
- deptId: parmas.deptId,
- authorization: parmas.jwtToken
- })
+ deptId: parmas.deptId,
+ authorization: parmas.jwtToken
+ })
.then((data) => {
this.commit("user/setToken", "");
this.commit("user/setToken", data.jwtToken);
diff --git a/src/utils/request.js b/src/utils/request.js
index 3a5b7dc..706b46a 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -40,19 +40,21 @@ service.interceptors.request.use(
service.interceptors.response.use(
// 请求成功的处理
(response) => {
- const { success, code, msg, message, data } = response.data;
+ const { success, code, msg, message, data } = response.data;
+
// 需要判断当前请求是否成功
if (success && code === 10000) {
- return data; // 成功后返回解析后的数据
+
+ return data ? data : response.data; // 成功后返回解析后的数据
} else if (code === 200 || code == "00000" || code == "10000" || msg == 'success') {
- return data; // 成功后返回解析后的数据
+ return data ? data : response.data; // // 成功后返回解析后的数据
} else if (code === 401) {
store.dispatch('user/logout');
ElMessage.error(message); // 提示错误信息
ElMessage({ message: message || msg, grouping: true, type: 'error' })
} else {
// 失败(请求成功 ,业务失败) 弹出消息提示
- ElMessage({ message: message || msg, grouping: true, type: 'error' })
+ ElMessage({ message: message || msg, grouping: true, type: 'error' })
return Promise.reject(new Error(message));
}
},
diff --git a/src/utils/tools.js b/src/utils/tools.js
index 0ceb19e..57eca59 100644
--- a/src/utils/tools.js
+++ b/src/utils/tools.js
@@ -2,14 +2,14 @@
import ImageCompressor from "image-compressor.js";
// 随机颜色 - 把16进制的颜色换成rgba格式
-export function choseRbgb(color,opcity) {
- if(color){
- return 'rgba('+ parseInt('0x'+color.slice(1,3)) + ','+ parseInt('0x'+color.slice(3,5))+','+parseInt('0x'+color.slice(5,7)) + ','+opcity+')'
- }else{
- let r = Math.floor(Math.random()*256)
- let g = Math.floor(Math.random()*256)
- let b = Math.floor(Math.random()*256)
- let a = opcity ? opcity :1
+export function choseRbgb(color, opcity) {
+ if (color) {
+ return 'rgba(' + parseInt('0x' + color.slice(1, 3)) + ',' + parseInt('0x' + color.slice(3, 5)) + ',' + parseInt('0x' + color.slice(5, 7)) + ',' + opcity + ')'
+ } else {
+ let r = Math.floor(Math.random() * 256)
+ let g = Math.floor(Math.random() * 256)
+ let b = Math.floor(Math.random() * 256)
+ let a = opcity ? opcity : 1
return `rgba(${r},${g},${b},${a})`
}
}
@@ -25,7 +25,7 @@ export function randomHexColor() { // 随机生成十六进制颜色
/**
* 压缩图片
- * @param {*} file
+ * @param {*} file
* @param {*} quality 压缩比
*/
export function compressImage(file, quality = 0.6) {
@@ -96,11 +96,11 @@ export function timeValidate(date, type) {
export function timeSlotChange(val) {
let startTime, endTime;
- let now = new Date(); //当前日期
- let nowDayOfWeek = now.getDay(); //今天本周的第几天
- let nowDay = now.getDate(); //当前日
- let nowMonth = now.getMonth(); //当前月
- let nowYear = now.getFullYear(); //当前年
+ let now = new Date(); //当前日期
+ let nowDayOfWeek = now.getDay(); //今天本周的第几天
+ let nowDay = now.getDate(); //当前日
+ let nowMonth = now.getMonth(); //当前月
+ let nowYear = now.getFullYear(); //当前年
let jd = Math.ceil((nowMonth + 1) / 3)
switch (val) {
case '天':
@@ -318,3 +318,8 @@ function _setTime(date) {
}
+//拼接地址
+export function setAddress(val) {
+ const url = '/mosty-api/mosty-base/minio/image/download/'
+ return url + val
+}
diff --git a/src/views/KeyPopulations/model/yjclqktj.vue b/src/views/KeyPopulations/model/yjclqktj.vue
index 29cd874..56764dc 100644
--- a/src/views/KeyPopulations/model/yjclqktj.vue
+++ b/src/views/KeyPopulations/model/yjclqktj.vue
@@ -5,9 +5,8 @@
查看更多 》
-
-
-
+
+
@@ -18,15 +17,8 @@ const pageData = reactive({
tableData: [
{ mc: "聚集事件", rs: "30", sj: "2024-10-10" },
{ mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
- { mc: "聚集事件", rs: "30", sj: "2024-10-10" },
-
+
+
],
keyCount: 0,
tableConfiger: {
@@ -85,7 +77,7 @@ const tabHeightFn = () => {
color: #fff;
height: 40px;
}
-
+
}
diff --git a/src/views/backOfficeSystem/ApprovalInformation/Clue/index.vue b/src/views/backOfficeSystem/ApprovalInformation/Clue/index.vue
new file mode 100644
index 0000000..2e02bd9
--- /dev/null
+++ b/src/views/backOfficeSystem/ApprovalInformation/Clue/index.vue
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+
+
+
{{ item.label }}:
+
+
+
+
+ {{ listQuery[item.key] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/ApprovalInformation/Clue/objectInformation.vue b/src/views/backOfficeSystem/ApprovalInformation/Clue/objectInformation.vue
new file mode 100644
index 0000000..f628035
--- /dev/null
+++ b/src/views/backOfficeSystem/ApprovalInformation/Clue/objectInformation.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+ {{ it.bqMc }}、
+
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/ApprovalInformation/FocusExploration/index.vue b/src/views/backOfficeSystem/ApprovalInformation/FocusExploration/index.vue
new file mode 100644
index 0000000..04eab07
--- /dev/null
+++ b/src/views/backOfficeSystem/ApprovalInformation/FocusExploration/index.vue
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
+
+
{{ item.label }}:
+
+
+
+
+ {{ listQuery[item.key] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/ApprovalInformation/deploycontrol/deploymentApproval.vue b/src/views/backOfficeSystem/ApprovalInformation/deploycontrol/deploymentApproval.vue
new file mode 100644
index 0000000..2d1b11d
--- /dev/null
+++ b/src/views/backOfficeSystem/ApprovalInformation/deploycontrol/deploymentApproval.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
{{item.label}}:
+
+
+
+
+ {{ listQuery[item.key] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/ApprovalInformation/deploycontrol/objectInformation.vue b/src/views/backOfficeSystem/ApprovalInformation/deploycontrol/objectInformation.vue
new file mode 100644
index 0000000..606a426
--- /dev/null
+++ b/src/views/backOfficeSystem/ApprovalInformation/deploycontrol/objectInformation.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+ {{ it.bqMc }}、
+
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/ApprovalInformation/tableRow.js b/src/views/backOfficeSystem/ApprovalInformation/tableRow.js
new file mode 100644
index 0000000..a825484
--- /dev/null
+++ b/src/views/backOfficeSystem/ApprovalInformation/tableRow.js
@@ -0,0 +1,86 @@
+let zdList = {}
+export const Zd = (val) => {
+ console.log(val);
+ zdList = val
+
+}
+
+
+export const tableColumnList = {
+ '01': [
+ { label: "照片", prop: "fjZp", showSolt: true },
+ { label: "姓名", prop: "ryXm" },
+ { label: "性别", prop: "ryXb", showSolt: true },
+ { label: "身份证号", prop: "rySfzh" },
+ { label: "户籍地", prop: "ryHjd" },
+ { label: "现居住地址", prop: "ryXjd" },
+ { label: "虚拟身份", prop: "qtXnsf" },
+ { label: "车牌号", prop: "clCph" },
+ { label: "车辆识别代码", prop: "clCjh" },
+ { label: "特征描述", prop: "qtTzms" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ], '02': [
+ { label: "照片", prop: "fjZp", showSolt: true },
+ { label: "姓名", prop: "ryXm" },
+ { label: "性别", prop: "ryXb", showSolt: true },
+ { label: "身份证号", prop: "rySfzh" },
+ { label: "户籍地", prop: "ryHjd" },
+ { label: "现居住地址", prop: "ryXjd" },
+ { label: "虚拟身份", prop: "qtXnsf" },
+ { label: "车牌号", prop: "clCph" },
+ { label: "车辆识别代码", prop: "clCjh" },
+ { label: "特征描述", prop: "qtTzms" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ], '03': [
+ { label: "车牌号", prop: "clCph" },
+ { label: "车辆颜色", prop: "clYs" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "预警标签", prop: "yjbq", showSolt: true, options: zdList.BD_BK_CLYJBQ },
+ ],
+ '04': [
+ { label: "身份证号", prop: "rySfzh" },
+ { label: "姓名", prop: "ryXm" },
+ { label: "性别", prop: "ryXb", showSolt: true },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ],
+ '05': [
+ { label: "车辆识别代码", prop: "clCjh" },
+ { label: "车牌号", prop: "clCph" },
+ { label: "车主姓名", prop: "ryXm" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ],
+ '06': [
+ { label: "Mac地址", prop: "mac" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ],
+ '07': [
+ { label: "IMEI", prop: "imei" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ],
+ '08': [
+ { label: "IMSI", prop: "imsi" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ],
+ '09': [
+ { label: "电话", prop: "rySjhm", type: "input" },
+ { label: "姓名", prop: "ryXm" },
+ { label: "性别", prop: "ryXb", showSolt: true },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ], '10': [
+ { label: "照片", prop: "fjZp", showSolt: true },
+ { label: "姓名", prop: "ryXm" },
+ { label: "性别", prop: "ryXb", showSolt: true },
+ { label: "身份证号", prop: "rySfzh" },
+ { label: "预警等级", prop: "yjdj", showSolt: true, options: zdList.D_GS_ZDR_YJDJ },
+ { label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
+ ],
+
+}
diff --git a/src/views/backOfficeSystem/BasicManagement/experienceShare/index.vue b/src/views/backOfficeSystem/BasicManagement/experienceShare/index.vue
index f4fe5b4..f13b770 100644
--- a/src/views/backOfficeSystem/BasicManagement/experienceShare/index.vue
+++ b/src/views/backOfficeSystem/BasicManagement/experienceShare/index.vue
@@ -116,7 +116,7 @@ const pageData = reactive({
prop: "fbnr",
showOverflowTooltip:true
},
-
+
]
});
onMounted(() => {
diff --git a/src/views/backOfficeSystem/DeploymentDisposal/mpvCar/components/addForm.vue b/src/views/backOfficeSystem/DeploymentDisposal/mpvCar/components/addForm.vue
index a60703c..97238fa 100644
--- a/src/views/backOfficeSystem/DeploymentDisposal/mpvCar/components/addForm.vue
+++ b/src/views/backOfficeSystem/DeploymentDisposal/mpvCar/components/addForm.vue
@@ -9,40 +9,12 @@
-
-
+ :rules="rules">
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/ExcavationResearch/LandingAudit/index.vue b/src/views/backOfficeSystem/ExcavationResearch/LandingAudit/index.vue
index c7c9265..fa9bad1 100644
--- a/src/views/backOfficeSystem/ExcavationResearch/LandingAudit/index.vue
+++ b/src/views/backOfficeSystem/ExcavationResearch/LandingAudit/index.vue
@@ -35,7 +35,10 @@
- 审核
+ 指令下发
+ 审核
+ 详情
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/components/addForm.vue b/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/components/addForm.vue
index 9807da0..e7c0397 100644
--- a/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/components/addForm.vue
+++ b/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/components/addForm.vue
@@ -15,7 +15,7 @@
- 线索内容
+ 情报内容
@@ -67,26 +67,26 @@ const props = defineProps({
const { proxy } = getCurrentInstance();
const dialogForm = ref(false); //弹窗
const rules = reactive({
- xsMc: [{ required: true, message: "请输入线索名称", trigger: "blur" }],
- xlLx: [{ required: true, message: "请选择线索类型", trigger: "change" }],
+ xsMc: [{ required: true, message: "请输入情报名称", trigger: "blur" }],
+ xlLx: [{ required: true, message: "请选择情报类型", trigger: "change" }],
qbLy: [{ required: true, message: "请选择情报来源", trigger: "change" }],
});
const formData = ref([
{ prop: "gapdive", type: "slot",width:'100%' },
- { label: "线索名称", prop: "xsMc", type: "input" },
- { label: "线索类型", prop: "xlLx", type: "select", options:props.dic.D_GS_XS_LX },
+ { label: "情报名称", prop: "xsMc", type: "input" },
+ { label: "情报类型", prop: "xlLx", type: "select", options:props.dic.D_GS_XS_LX },
{ label: "情报来源", prop: "qbLy", type: "select", options:props.dic.D_GS_XS_LY},
- { label: "指向开始时间", prop: "zxkssj", type: "datetime"},
- { label: "指向结束时间", prop: "zxjssj", type: "datetime"},
+ { label: "情报上报时间", prop: "zxkssj", type: "datetime"},
+ // { label: "指向结束时间", prop: "zxjssj", type: "datetime"},
{ label: "指向地点", prop: "zxdz", type: "input"},
{ label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
{ prop: "gapline", type: "slot",width:'100%' },
{ prop: "scfj", type: "slot",width:'100%'},
- { label: "线索内容", prop: "xsNr", type: "textarea",width:'100%'},
+ { label: "情报内容", prop: "xsNr", type: "textarea",width:'100%'},
{ label: "群体类型", prop: "qtlx", type: "select",options:props.dic.D_GS_XS_QTLX },
{ label: "群体名称", prop: "qtmc", type: "input"},
{ label: "涉及人数", prop: "sjrs", type: "inputNumber"},
- { label: "线索报送单位", prop: "ssbmdm", type: "department"},
+ { label: "情报报送单位", prop: "ssbmdm", type: "department"},
]);
const fjdz = ref()
const listQuery = ref({}); //表单
diff --git a/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index.vue b/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index.vue
index 5b14a1c..ca55369 100644
--- a/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index.vue
+++ b/src/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index.vue
@@ -7,60 +7,63 @@
导出
-->
-
+
+
+
全域搜索
-
+
-
-
+
-
+
-
+
+
-
- 编辑
+ 详情
+
+
+
+ 发布
+
+
- 审核
+ 转线索
-
审核状态 :
+
状态 :
- {{ obj.zdmc }}
+ {{ obj.zdmc }}
-
+
@@ -73,25 +76,21 @@
删除
-
+
-
+
-
-
-
-
+
+
+
+
-
diff --git a/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/components/addForm.vue b/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/components/addForm.vue
index ab075ad..73b1c00 100644
--- a/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/components/addForm.vue
+++ b/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/components/addForm.vue
@@ -1,7 +1,7 @@
-
人力情报信息搜索任务调度{{ title }}
+
人力情报信息收集任务调度{{ title }}
保存
关闭
@@ -11,7 +11,7 @@
- 选择
+
删除
+
-->
+
+
+
+
+
+
+ 删除
+
+ 详情
+
+
@@ -61,13 +74,19 @@ const tableDate = reactive({
}, //分页
controlsWidth: 120, //操作栏宽度
tableColumn: [
- { label: "线索名称", prop: "xsMc" },
- { label: "线索编号", prop: "xsBh"},
- { label: "线索来源", prop: "qbLy", showSolt: true},
- { label: "开始时间", prop: "zxkssj"},
- { label: "结束时间", prop: "zxjssj"},
- { label: "指向地点", prop: "zxdz"},
- { label: "线索内容", prop: "xsNr",showOverflowTooltip:true },
+ // { label: "线索名称", prop: "xsMc" },
+ // { label: "线索编号", prop: "xsBh"},
+ // { label: "线索来源", prop: "qbLy", showSolt: true},
+ // { label: "开始时间", prop: "zxkssj"},
+ // { label: "结束时间", prop: "zxjssj"},
+ // { label: "指向地点", prop: "zxdz"},
+ // { label: "线索内容", prop: "xsNr",showOverflowTooltip:true },
+ // { label: "处置状态", prop: "czzt", showSolt: true },
+ { label: "反馈单位", prop: "xsMc" },
+ { label: "反馈民警", prop: "xsBh"},
+ { label: "反馈时间", prop: "qbLy", showSolt: true},
+ { label: "反馈内容", prop: "zxkssj" },
+ { label: "图片", prop: "czzt", showSolt: true },
{ label: "处置状态", prop: "czzt", showSolt: true },
]
});
@@ -75,7 +94,7 @@ const dialogForm = ref(false); //弹窗
const rules = reactive({
bsDwDm: [{ required: true, message: "请选择报送单位", trigger: "change" }],
- ssbmdm: [{ required: true, message: "请选择所属部门", trigger: "change" }],
+ ssbmdm: [{ required: true, message: "请选择所属部门", trigger: "change"}],
rwBt: [{ required: true, message: "请输入任务标题", trigger: "blur" }],
rwBh: [{ required: true, message: "请输入任务编号", trigger: "blur" }],
rwLy: [{ required: true, message: "请选择任务来源", trigger: "change" }],
@@ -85,8 +104,7 @@ const rules = reactive({
rwNr: [{ required: true, message: "请输入任务内容", trigger: "blur" }],
});
const formData = ref([
- { label: "所属部门", prop: "ssbmdm",depMc:'ssbmmc', type: "department" },
- { label: "报送单位", prop: "bsDwDm",depMc:'bsDwMc', type: "department" },
+ { label: "所属部门", prop: "ssbmdm", depMc: 'ssbmmc', type: "department" },
{ label: "任务标题", prop: "rwBt", type: "input" },
{ label: "任务编号", prop: "rwBh", type: "input" },
{ label: "任务类型", prop: "rwLx", type: "select", options: props.dic.D_GS_RLQB_RWDD_LX },
@@ -94,8 +112,10 @@ const formData = ref([
{ label: "反馈开始时间", prop: "rwSjKs", type: "datetime" },
{ label: "反馈截止时间", prop: "rwSjFkjz", type: "datetime" },
{ label: "严重程度", prop: "rwYzcd", type: "select", options: props.dic.D_GS_RLQB_RWDD_YZCD },
+ { label: "报送单位", prop: "bsDwDm", depMc: 'bsDwMc', type: "department", multiple: true, width: '100%' },
{ label: "任务内容", prop: "rwNr", type: "textarea", width: "100%" },
- { label: "线索列表", prop: "xsList", type: "slot", width: "99%" }
+ // { label: "线索列表", prop: "xsList", type: "slot", width: "99%" }
+ { label: "反馈内容", prop: "xsList", type: "slot", width: "99%" }
]);
const listQuery = ref({}); //表单
const loading = ref(false);
@@ -122,7 +142,7 @@ const submit = () => {
let url = title.value == "新增" ? "/mosty-gsxt/tbGsxtRlqbRwdd/save" : "/mosty-gsxt/tbGsxtRlqbRwdd/update";
let params = { ...data };
loading.value = true;
- params.xsList = params.xsList.map((item) => item.id);
+ // params.xsList = params.xsList.map((item) => item.id);
qcckPost(params, url).then(() => {
loading.value = false;
proxy.$message({ type: "success", message: title.value + "成功" });
diff --git a/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index.vue b/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index.vue
index 4965f33..bcd0945 100644
--- a/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index.vue
+++ b/src/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index.vue
@@ -1,7 +1,7 @@
-
+
@@ -27,8 +27,12 @@
编辑
+ 详情
- 下发
+
+
+
+ 下发
删除
@@ -52,9 +56,9 @@ import DetailForm from "./components/addForm.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
const { proxy } = getCurrentInstance();
-const {
- D_GS_RLQB_RWDD_LY,
- D_GS_RLQB_RWDD_YZCD,
+const {
+ D_GS_RLQB_RWDD_LY,
+ D_GS_RLQB_RWDD_YZCD,
D_GS_XS_FXDJ,
D_GS_XS_CZZT,
D_GS_XS_ZT,
@@ -62,8 +66,8 @@ const {
D_GS_ZDQT_LB,
D_GS_RLQB_RWDD_LX
} =proxy.$dict(
- "D_GS_RLQB_RWDD_LY",
- "D_GS_RLQB_RWDD_YZCD",
+ "D_GS_RLQB_RWDD_LY",
+ "D_GS_RLQB_RWDD_YZCD",
"D_GS_XS_FXDJ",
"D_GS_XS_CZZT",
"D_GS_XS_ZT",
@@ -122,7 +126,7 @@ const pageData = reactive({
pageSize: 20,
pageCurrent: 1
},
- controlsWidth: 150,
+ controlsWidth: 200,
tableColumn: [
{ label: "任务标题", prop: "rwBt" },
{ label: "任务内容", prop: "rwNr", width: 200 },
diff --git a/src/views/backOfficeSystem/IntelligentControl/myControl/components/addBkdx.vue b/src/views/backOfficeSystem/IntelligentControl/myControl/components/addBkdx.vue
index 119dc96..59ef308 100644
--- a/src/views/backOfficeSystem/IntelligentControl/myControl/components/addBkdx.vue
+++ b/src/views/backOfficeSystem/IntelligentControl/myControl/components/addBkdx.vue
@@ -7,153 +7,143 @@
关闭
-
+
+
+
+
diff --git a/src/views/backOfficeSystem/IntelligentControl/myControl/index.vue b/src/views/backOfficeSystem/IntelligentControl/myControl/index.vue
index 3ebb036..04e46b7 100644
--- a/src/views/backOfficeSystem/IntelligentControl/myControl/index.vue
+++ b/src/views/backOfficeSystem/IntelligentControl/myControl/index.vue
@@ -2,7 +2,7 @@
@@ -13,43 +13,49 @@
-
-
-
-
-
-
-
-
-
-
-
- {{ it.ryXm }} 、
- 暂无
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ it.ryXm ? it.ryXm : it.imei ? it.imei : it.imsi ? it.imsi : '' }}
+
+ 、
+
+ 暂无
+
+
+
+
- 送审
- 编辑
- 详情
- 删除
+
+ 送审
+ 编辑
+
+
+
+ 轨迹
+ 详情
+ 删除
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/IntelligentControl/warningControl/components/yjItem.vue b/src/views/backOfficeSystem/IntelligentControl/warningControl/components/yjItem.vue
index 146e129..c192a62 100644
--- a/src/views/backOfficeSystem/IntelligentControl/warningControl/components/yjItem.vue
+++ b/src/views/backOfficeSystem/IntelligentControl/warningControl/components/yjItem.vue
@@ -1,7 +1,7 @@
-
+
已完成
-
签收
+
签收
反馈
@@ -10,7 +10,7 @@
-
全息档案
+
{}">全息档案
-
+
@@ -81,7 +81,7 @@ const rules = reactive({
// 处理签收
const handleQs = (val) =>{
proxy.$confirm("是否确定要签收?", "警告", { type: "warning" }).then(() => {
- qcckPost({id:val.id}, "/mosty-jmxf/tbYjxx/yjqs").then(() => {
+ qcckPost({id:val.id}, "/mosty-gsxt/tbYjxx/yjqs").then(() => {
val.czzt = '02'
proxy.$message({ type: "success", message: "签收成功" });
});
@@ -93,7 +93,7 @@ const handleSendSp = (val) =>{
elRowForm.value.validate((valid) => {
if(!valid) return;
let data = { id:val.id,...chooseRow.value }
- qcckPost(data, "/mosty-jmxf/tbYjxx/yjfk").then(() => {
+ qcckPost(data, "/mosty-gsxt/tbYjxx/yjfk").then(() => {
val.czzt = '03';
proxy.$message({ type: "success", message: "反馈成功" });
cancelRowSp()
@@ -134,6 +134,9 @@ const changetText = (type) => {
return "不关注";
}
};
+const showDetail = () => {
+ emit('showDetail',props.item)
+}
@@ -244,4 +247,4 @@ const changetText = (type) => {
.num{
color: #00ffff;
}
-
\ No newline at end of file
+
diff --git a/src/views/backOfficeSystem/IntelligentControl/warningControl/index.vue b/src/views/backOfficeSystem/IntelligentControl/warningControl/index.vue
index a700adc..375a908 100644
--- a/src/views/backOfficeSystem/IntelligentControl/warningControl/index.vue
+++ b/src/views/backOfficeSystem/IntelligentControl/warningControl/index.vue
@@ -24,7 +24,7 @@
+
+
+
diff --git a/src/views/backOfficeSystem/MakeAcomment/components/itemXs/addForm.vue b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/addForm.vue
new file mode 100644
index 0000000..4d63ae1
--- /dev/null
+++ b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/addForm.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
{{ item.ssbm }}—{{ item.plrxm }}
+
{{ item.plnr }}
+
+
{{ item.pldd }}
+
{{ item.plsj }}
+
+ 回复
+ 删除
+
+
+
+
+ 发表
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/MakeAcomment/components/itemXs/commentList.vue b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/commentList.vue
new file mode 100644
index 0000000..2194a52
--- /dev/null
+++ b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/commentList.vue
@@ -0,0 +1,228 @@
+
+
+
+
+
{{ item.ssbm }}—{{ item.plrxm }}
+
{{ item.plnr }}
+
+
{{ item.pldd }}
+
{{ item.plsj }}
+
回复
+
+ 删除
+
查看回复
+
点赞{{dzs }}
+
+
+ 回复
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/MakeAcomment/components/itemXs/itemXs.vue b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/itemXs.vue
index 505225b..3c10f0d 100644
--- a/src/views/backOfficeSystem/MakeAcomment/components/itemXs/itemXs.vue
+++ b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/itemXs.vue
@@ -1,55 +1,72 @@
-
+
- 情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,
+ {{ item.xsMc }}
- 情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,
+ {{item.xsNr }}
-
1000
-
15522
-
2025-10-10 10:10:10
-
-
情报类型:测试数据
+
+
+ {{item.rd?item.rd:0}}
+
+
+
+ {{item.pls?item.pls:0}}
+
+
+
+ {{item.fbsj}}
+
+
+
情报类型:
+
+
diff --git a/src/views/backOfficeSystem/MakeAcomment/components/itemXs/replyList.vue b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/replyList.vue
new file mode 100644
index 0000000..ebff4e8
--- /dev/null
+++ b/src/views/backOfficeSystem/MakeAcomment/components/itemXs/replyList.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
diff --git a/src/views/backOfficeSystem/MakeAcomment/index.vue b/src/views/backOfficeSystem/MakeAcomment/index.vue
index cec3738..8738c75 100644
--- a/src/views/backOfficeSystem/MakeAcomment/index.vue
+++ b/src/views/backOfficeSystem/MakeAcomment/index.vue
@@ -8,25 +8,33 @@
-
-
+
diff --git a/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/components/addForm.vue b/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/components/addForm.vue
index d84e41d..87b20c0 100644
--- a/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/components/addForm.vue
+++ b/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/components/addForm.vue
@@ -3,53 +3,59 @@
{{ title }}情报信息流转
- 保存
+ 保存
关闭
-
@@ -61,7 +67,8 @@ import AddPeo from '@/components/addPerson/index.vue'
import MyTable from "@/components/aboutTable/MyTable.vue";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
-import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick } from "vue";
+import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, nextTick,watch } from "vue";
+import ApprovalEcho from "@/components/flowPath/ApprovalEcho.vue";
const emit = defineEmits(["change"]);
const props = defineProps({
dic: Object
@@ -74,17 +81,17 @@ const rules = reactive({
qbLy: [{ required: true, message: "请选择情报来源", trigger: "change" }],
});
const formData = ref([
- { prop: "gapdive", type: "slot",width:'100%' },
+ { prop: "gapdive", type: "slot", width: '100%' },
{ label: "线索名称", prop: "xsMc", type: "input" },
- { label: "线索类型", prop: "xlLx", type: "select", options:props.dic.D_GS_XS_LX },
- { label: "情报来源", prop: "qbLy", type: "select", options:props.dic.D_GS_XS_LY},
- { label: "指向开始时间", prop: "zxkssj", type: "datetime"},
- { label: "指向结束时间", prop: "zxjssj", type: "datetime"},
- { label: "指向地点", prop: "zxdz", type: "input"},
- { label: "所属专题", prop: "sszt", type: "select",options:props.dic.D_BZ_SSZT},
- { prop: "gapline", type: "slot",width:'100%' },
- { prop: "scfj", type: "slot",width:'100%'},
- { label: "线索内容", prop: "xsNr", type: "textarea",width:'100%'},
+ { label: "线索类型", prop: "xlLx", type: "select", options: props.dic.D_GS_XS_LX },
+ { label: "情报来源", prop: "qbLy", type: "select", options: props.dic.D_GS_XS_LY },
+ { label: "指向开始时间", prop: "zxkssj", type: "datetime" },
+ { label: "指向结束时间", prop: "zxjssj", type: "datetime" },
+ { label: "指向地点", prop: "zxdz", type: "input" },
+ { label: "所属专题", prop: "sszt", type: "select", options: props.dic.D_BZ_SSZT },
+ { prop: "gapline", type: "slot", width: '100%' },
+ { prop: "scfj", type: "slot", width: '100%' },
+ { label: "线索内容", prop: "xsNr", type: "textarea", width: '100%' },
]);
const fjdz = ref()
const listQuery = ref({}); //表单
@@ -97,21 +104,22 @@ const pageForm = reactive({
tableConfiger: {
rowHieght: 61,
showSelectType: "checkBox",
- loading: false
+ loading: false,
+ haveControls: !title.value == '详情'
},
controlsWidth: 220,
tableColumn: [
{ label: "姓名", prop: "xm" },
- { label: "性别", prop: "xb",showSolt:true },
+ { label: "性别", prop: "xb", showSolt: true },
{ label: "身份证号", prop: "sfzh" },
{ label: "户籍地", prop: "hjdz" },
{ label: "户籍地派出所", prop: "hjdpcs" },
- { label: "标签", prop: "bqList",showSolt:true }
+ { label: "标签", prop: "bqList", showSolt: true }
]
});
const showAdd = ref()
const showPeo = ref(false)
-onMounted(()=>{
+onMounted(() => {
tabHeightFn()
})
@@ -125,50 +133,61 @@ const init = (type, row) => {
// 初始化表单数据,并根据详情页设置禁用状态
if (row) getDataById(row.id);
};
+
+
+
// 根据id查询详情
const getDataById = (id) => {
- qcckGet({id}, "/mosty-gsxt/qbcj/selectByid").then((res) => {
+ qcckGet({ id }, "/mosty-gsxt/qbcj/selectByid").then((res) => {
fjdz.value = res.ossList || [];
listQuery.value = res;
pageForm.tableData = res.ryList || [];
});
};
+const approvalEcho = ref()
+watch(() => approvalEcho.value, (val) => {
+ if (val) {
+ console.log(approvalEcho.value);
+ approvalEcho.value.getWorkflow(listQuery.value.gzlid)
+ }
+
+},{deep:true})
// 打开弹窗
-const addEdit = (type,row,index) =>{
+const addEdit = (type, row, index) => {
showPeo.value = true;
- nextTick(()=>{
- showAdd.value.init(type,row,index)
+ nextTick(() => {
+ showAdd.value.init(type, row, index)
})
}
// 新增人员
-const getPeo = (val) =>{
- if(val.type == '新增'){
+const getPeo = (val) => {
+ if (val.type == '新增') {
pageForm.tableData.push(val.data);
- }else{
+ } else {
pageForm.tableData.splice(val.index, 1, val.data); // 在索引2的位置删除一个元素,并插入newValue
}
}
-const deleteRow = (index) =>{
- pageForm.tableData.splice(index,1)
+const deleteRow = (index) => {
+ pageForm.tableData.splice(index, 1)
}
// 提交
const submit = () => {
elform.value.submit((data) => {
- let url = title.value == "新增" ? "/mosty-gsxt/qbcj/add" : "/mosty-gsxt/qbcj/update";
- let params = { ...data ,ryList:pageForm.tableData,cjLx:'0'};
+ let url = title.value == "新增" ? "/mosty-gsxt/qbcj/add" : "/mosty-gsxt/qbcj/update";
+ let params = { ...data, ryList: pageForm.tableData, cjLx: '0' };
let fjids = [];
- fjdz.value.forEach(item=>{
- if(Object.prototype.toString.call(item) === '[object Object]'){
+ fjdz.value.forEach(item => {
+ if (Object.prototype.toString.call(item) === '[object Object]') {
fjids.push(item.id)
- }else{
+ } else {
fjids.push(item)
}
})
- params.fjdz = fjids.length > 0 ? fjids.join(','):'';
+ params.fjdz = fjids.length > 0 ? fjids.join(',') : '';
loading.value = true;
qcckPost(params, url).then((res) => {
loading.value = false;
@@ -191,7 +210,7 @@ const close = () => {
// 表格高度计算
const tabHeightFn = () => {
- pageForm.tableHeight = window.innerHeight - 720;
+ pageForm.tableHeight = window.innerHeight - 720;
window.onresize = function () {
tabHeightFn();
};
@@ -203,10 +222,12 @@ defineExpose({ init });
diff --git a/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/index.vue b/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/index.vue
index 4572664..89073d5 100644
--- a/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/index.vue
+++ b/src/views/backOfficeSystem/ResearchJudgment/DatAcquisition/index.vue
@@ -36,7 +36,7 @@
{{ row.zxkssj }} 至
- {{ row.zxjssj }}
+ {{ row.zxjssj }}
@@ -44,9 +44,10 @@
- 编辑
-
-
+
+
+
+
+
+ 编辑
+ 审核
删除
+
+ 详情
- 续报
+ 续报
+
diff --git a/src/views/home/model/fxq.vue b/src/views/home/model/fxq.vue
new file mode 100644
index 0000000..3c2357f
--- /dev/null
+++ b/src/views/home/model/fxq.vue
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/home/model/information.vue b/src/views/home/model/information.vue
new file mode 100644
index 0000000..7c8d2f8
--- /dev/null
+++ b/src/views/home/model/information.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/home/model/mesgSwitch/systemMessages.vue b/src/views/home/model/mesgSwitch/systemMessages.vue
new file mode 100644
index 0000000..5e4c761
--- /dev/null
+++ b/src/views/home/model/mesgSwitch/systemMessages.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/home/model/mesgSwitch/tztg.vue b/src/views/home/model/mesgSwitch/tztg.vue
new file mode 100644
index 0000000..7976197
--- /dev/null
+++ b/src/views/home/model/mesgSwitch/tztg.vue
@@ -0,0 +1,53 @@
+
+
+
通知标题:{{ item.xxbt }}
+
通知内容:{{ item.xxms }}
+
+
接收类型:
+
+
+
消息来源:
+
+
+
+
+
+
+
+
diff --git a/src/views/home/model/mesgSwitch/xtxi.vue b/src/views/home/model/mesgSwitch/xtxi.vue
new file mode 100644
index 0000000..7976197
--- /dev/null
+++ b/src/views/home/model/mesgSwitch/xtxi.vue
@@ -0,0 +1,53 @@
+
+
+
通知标题:{{ item.xxbt }}
+
通知内容:{{ item.xxms }}
+
+
接收类型:
+
+
+
消息来源:
+
+
+
+
+
+
+
+
diff --git a/vue.config.js b/vue.config.js
index ad9011d..d5d706a 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -4,11 +4,18 @@ function resolve(dir) {
return path.join(__dirname, dir);
}
-const serverHost = "http://192.168.1.32:8066"//波哥
+const serverHost = "http://192.168.1.32:8006"//波哥
// const serverHost = "http://192.168.0.231:8006"//线上
// const serverHost = "http://192.168.1.117:8006"//周
// const serverHost = "http://192.168.1.98:8006"//毛毛
module.exports = {
+ // configureWebpack: {
+ // resolve: {
+ // alias: {
+ // vue: '@vue/compat'
+ // }
+ // }
+ // },
publicPath: "./",
outputDir: "gsxt",
assetsDir: "static",
@@ -44,6 +51,15 @@ module.exports = {
changeOrigin: true,
logLevel: "debug"
},
+ "/": {
+ target: "http://192.168.0.101:32001",
+ changeOrigin: true,
+ logLevel: "debug",
+ onProxyReq(proxyReq) {
+ // 在这里添加固定的 Cookie
+ proxyReq.setHeader('Cookie', 'clientKey-temp=1c2db6cac7dd405fb33c2a6725337925; static_version_fpip-manage=1.222; clientKey=30842687f48c4ed1818dbc45a0cdd4e1; static_version_fpip-jgpt=1.222; static_version_fpip-mdjf=1.222; static_version_fpip-tddx=1.222; static_version_fpip-dtbd=1.222; static_version_fpip-qzgl=1.222; static_version_fpip-bzdz=1.222; static_version_fpip-pcsgl=1.222; static_version_fpip-sydw=1.222')
+ },
+ },
"/chat": {
target: 'https://api.deepseek.com/chat/',
changeOrigin: true,
@@ -54,6 +70,11 @@ module.exports = {
},
}
},
+ // resolve: {
+ // alias: {
+ // vue: '@vue/compat' // 强制使用兼容模式
+ // }
+ // },
chainWebpack(config) {
// 设置 svg-sprite-loader
// config 为 webpack 配置对象