flx:优化客户端下载进度提示
This commit is contained in:
parent
d16637bdbb
commit
91ca8b345f
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "zhgdyun",
|
"name": "zhgdyun",
|
||||||
"version": "0.1.0",
|
"version": "1.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "npm run dev",
|
"start": "npm run dev",
|
||||||
|
|||||||
@ -98,3 +98,12 @@ export const getDictionaryItemPageApi = (data) => get('/xmgl/dictionaryItem/page
|
|||||||
export const getDictionaryItemBackApi = (data) => post('/xmgl/dictionary/back', data)
|
export const getDictionaryItemBackApi = (data) => post('/xmgl/dictionary/back', data)
|
||||||
export const deleteDictionaryItemBackApi = (data) => post('/xmgl/dictionary/deletePhysic', data)
|
export const deleteDictionaryItemBackApi = (data) => post('/xmgl/dictionary/deletePhysic', data)
|
||||||
export const batchDeleteDictionaryItemBackApi = (data) => post('/xmgl/dictionary/batch/delete', data)
|
export const batchDeleteDictionaryItemBackApi = (data) => post('/xmgl/dictionary/batch/delete', data)
|
||||||
|
|
||||||
|
// 获取最新版本信息
|
||||||
|
export const addexeVersionApi = (data) => post('xmgl/exeVersion/add', data)
|
||||||
|
export const deleteexeVersionApi = (data) =>
|
||||||
|
post('xmgl/exeVersion/delete', data)
|
||||||
|
export const editexeVersionApi = (data) => post('xmgl/exeVersion/edit', data)
|
||||||
|
export const getexeVersionListApi = (data) => get('xmgl/exeVersion/list', data)
|
||||||
|
export const getExeVersion = (data) => post('/xmgl/exeVersion/getExeVersion', data)
|
||||||
|
|
||||||
|
|||||||
@ -225,30 +225,30 @@ if (process.env.NODE_ENV == "development") {
|
|||||||
// axios.defaults.baseURL = 'http://192.168.34.221:28888/' //郭圣雄本地
|
// axios.defaults.baseURL = 'http://192.168.34.221:28888/' //郭圣雄本地
|
||||||
// axios.defaults.baseURL = 'http://192.168.34.221:28889/' //郭圣雄本地
|
// axios.defaults.baseURL = 'http://192.168.34.221:28889/' //郭圣雄本地
|
||||||
// axios.defaults.baseURL = 'http://192.168.34.221:28890/' //郭圣雄本地
|
// axios.defaults.baseURL = 'http://192.168.34.221:28890/' //郭圣雄本地
|
||||||
// axios.defaults.baseURL = 'http://192.168.34.221:19112/' //郭圣雄本地
|
axios.defaults.baseURL = 'http://jxj.zhgdyun.com:51238/' //郭圣雄本地
|
||||||
axios.defaults.baseURL = "http://192.168.34.221:9111/"; //郭圣雄本地
|
// axios.defaults.baseURL = "http://192.168.34.221:9111/"; //郭圣雄本地
|
||||||
// axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
|
// axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
|
||||||
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:51234/' //郭圣雄远程
|
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:51234/' //郭圣雄远程
|
||||||
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:61212/' //彭洁远程
|
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:61212/' //彭洁远程
|
||||||
// axios.defaults.baseURL ='http://101.43.164.214:45020/' //沈阳和盈
|
// axios.defaults.baseURL ='http://101.43.164.214:45020/' //沈阳和盈
|
||||||
// axios.defaults.baseURL ='http://183.249.224.118:9000/' //嘉兴王江泾公用码头
|
// axios.defaults.baseURL ='http://183.249.224.118:9000/' //嘉兴王江泾公用码头
|
||||||
// axios.defaults.baseURL = 'http://101.43.164.214:11111/' // 百色三标段项目
|
// axios.defaults.baseURL = 'http://101.43.164.214:11111/' // 百色三标段项目
|
||||||
// axios.defaults.baseURL = 'http://125.88.207.86:8088/'//中建四局线上(最新)地址
|
// axios.defaults.baseURL = 'http://125.88.207.86:8088/'//中建四局线上(最新)地址
|
||||||
// axios.defaults.baseURL = 'http://125.88.207.86:8099/'//中建四局(沙湖)线上(最新)地址
|
// axios.defaults.baseURL = 'http://125.88.207.86:8099/'//中建四局(沙湖)线上(最新)地址
|
||||||
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:15551/'//测试地址
|
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:15551/'//测试地址
|
||||||
// axios.defaults.baseURL = 'http://47.93.215.234:9809/'//鞍钢正式地址(弃用)
|
// axios.defaults.baseURL = 'http://47.93.215.234:9809/'//鞍钢正式地址(弃用)
|
||||||
// axios.defaults.baseURL = 'http://42.180.188.17:9809/' //鞍钢正式地址
|
// axios.defaults.baseURL = 'http://42.180.188.17:9809/' //鞍钢正式地址
|
||||||
// axios.defaults.baseURL = 'http://47.93.215.234:11211/'//鞍钢测试地址(弃用)
|
// axios.defaults.baseURL = 'http://47.93.215.234:11211/'//鞍钢测试地址(弃用)
|
||||||
// axios.defaults.baseURL = 'http://42.180.188.17:11211/' //鞍钢测试地址
|
// axios.defaults.baseURL = 'http://42.180.188.17:11211/' //鞍钢测试地址
|
||||||
// axios.defaults.baseURL = 'http://8.136.222.164:8808/' //中科安信正式地址
|
// axios.defaults.baseURL = 'http://8.136.222.164:8808/' //中科安信正式地址
|
||||||
// axios.defaults.baseURL = 'http://1.13.185.209:9820/' //中科佳成正式地址
|
// axios.defaults.baseURL = 'http://1.13.185.209:9820/' //中科佳成正式地址
|
||||||
// axios.defaults.baseURL = 'http://192.168.9.249:9820/' //四川网城正式地址
|
// axios.defaults.baseURL = 'http://192.168.9.249:9820/' //四川网城正式地址
|
||||||
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:34568/' //四川网城外网映射地址
|
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:34568/' //四川网城外网映射地址
|
||||||
// axios.defaults.baseURL = 'http://192.168.110.220:9809/' //同济正式地址
|
// axios.defaults.baseURL = 'http://192.168.110.220:9809/' //同济正式地址
|
||||||
// axios.defaults.baseURL = 'http://192.168.100.4:9809/' //乌丹(合肥启程)新正式地址
|
// axios.defaults.baseURL = 'http://192.168.100.4:9809/' //乌丹(合肥启程)新正式地址
|
||||||
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000/"; //包头化工
|
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000/"; //包头化工
|
||||||
// axios.defaults.baseURL = "http://219.147.96.219:9809/"; //包头化工
|
// axios.defaults.baseURL = "http://219.147.96.219:9809/"; //包头化工
|
||||||
// axios.defaults.baseURL = "http://192.168.3.9:39809/";
|
axios.defaults.baseURL = "http://101.43.164.214:11000/";
|
||||||
} else if (process.env.NODE_ENV == "debug") {
|
} else if (process.env.NODE_ENV == "debug") {
|
||||||
axios.defaults.baseURL = "https://www.ceshi.com";
|
axios.defaults.baseURL = "https://www.ceshi.com";
|
||||||
} else if (process.env.NODE_ENV == "production") {
|
} else if (process.env.NODE_ENV == "production") {
|
||||||
@ -258,6 +258,7 @@ if (process.env.NODE_ENV == "development") {
|
|||||||
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000/"; //包头化工
|
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000/"; //包头化工
|
||||||
// axios.defaults.baseURL = "http://219.147.96.219:9809/"; //包头化工(正式)
|
// axios.defaults.baseURL = "http://219.147.96.219:9809/"; //包头化工(正式)
|
||||||
axios.defaults.baseURL = "http://192.168.3.9:39809/"; //包头化工(内网)
|
axios.defaults.baseURL = "http://192.168.3.9:39809/"; //包头化工(内网)
|
||||||
|
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:51238/'
|
||||||
// axios.defaults.baseURL ='http://192.168.34.216:6023/'
|
// axios.defaults.baseURL ='http://192.168.34.216:6023/'
|
||||||
// axios.defaults.baseURL = window.location.protocol + "//" + host.split(":")[0] + ":6023" + "/"
|
// axios.defaults.baseURL = window.location.protocol + "//" + host.split(":")[0] + ":6023" + "/"
|
||||||
// axios.defaults.baseURL = 'http://zhgd.loganwy.com/`'
|
// axios.defaults.baseURL = 'http://zhgd.loganwy.com/`'
|
||||||
|
|||||||
@ -88,6 +88,12 @@ const routes2 = [{
|
|||||||
component: () =>
|
component: () =>
|
||||||
import ("../views/jxjadmin/operateManage.vue"),
|
import ("../views/jxjadmin/operateManage.vue"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/operateManagePc",
|
||||||
|
name: "operateManagePc",
|
||||||
|
component: () =>
|
||||||
|
import ("../views/jxjadmin/operateManagePc.vue"),
|
||||||
|
},
|
||||||
//字典管理
|
//字典管理
|
||||||
{
|
{
|
||||||
path: "/dictionaryManaged",
|
path: "/dictionaryManaged",
|
||||||
|
|||||||
@ -95,6 +95,9 @@ export default new Vuex.Store({
|
|||||||
// UNIVERURl: "http://219.147.96.219:20000/#/", // word|excel线上
|
// UNIVERURl: "http://219.147.96.219:20000/#/", // word|excel线上
|
||||||
// PREVIEWURL: "http://219.147.96.221:8012/onlinePreview",
|
// PREVIEWURL: "http://219.147.96.221:8012/onlinePreview",
|
||||||
|
|
||||||
|
// UPLOADURL: 'http://jxj.zhgdyun.com:51238/upload/image/',
|
||||||
|
// FILEURL: 'http://jxjzw.zhgdyun.com:9001/wisdomisitebaotou/',
|
||||||
|
|
||||||
// 内网
|
// 内网
|
||||||
UPLOADURL: 'http://192.168.3.9:39809' + "/upload/image", //包头化工
|
UPLOADURL: 'http://192.168.3.9:39809' + "/upload/image", //包头化工
|
||||||
// FILEURL: 'http://jxjzw.zhgdyun.com:9001/wisdomisitebaotouprod', //包头化工
|
// FILEURL: 'http://jxjzw.zhgdyun.com:9001/wisdomisitebaotouprod', //包头化工
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -510,6 +510,29 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 添加卡片弹框 -->
|
||||||
|
<el-dialog
|
||||||
|
:destroy-on-close="true"
|
||||||
|
:modal-append-to-body="false"
|
||||||
|
title="下载智慧工地系统"
|
||||||
|
:visible.sync="cardDialog2"
|
||||||
|
class="dialog_w900"
|
||||||
|
>
|
||||||
|
<div class="dialog_content">
|
||||||
|
<div class="percentage_title">
|
||||||
|
{{ this.percentageTitle }}
|
||||||
|
</div>
|
||||||
|
<el-progress
|
||||||
|
style="width: 100%"
|
||||||
|
:percentage="percentage"
|
||||||
|
></el-progress>
|
||||||
|
<!-- <div class="dialog-footer">
|
||||||
|
<el-button type="primary" icon="el-icon-circle-check" @click="getProgress" size="medium">{{
|
||||||
|
$t("message.personnelPosition.determine") }}
|
||||||
|
</el-button>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -524,7 +547,10 @@ import {
|
|||||||
newRegisterApi,
|
newRegisterApi,
|
||||||
jumpLargeUserInfoApi,
|
jumpLargeUserInfoApi,
|
||||||
} from "@/assets/js/api/loginSign";
|
} from "@/assets/js/api/loginSign";
|
||||||
import { selectSystemLogoConfigApi } from "@/assets/js/api/jxjadmin";
|
import {
|
||||||
|
selectSystemLogoConfigApi,
|
||||||
|
getExeVersion,
|
||||||
|
} from "@/assets/js/api/jxjadmin";
|
||||||
import { getProjectConfigPageApi } from "@/assets/js/api/configManage";
|
import { getProjectConfigPageApi } from "@/assets/js/api/configManage";
|
||||||
import getcode from "@/components/getMsgCode";
|
import getcode from "@/components/getMsgCode";
|
||||||
import { getOneComputerAuthApi } from "@/assets/js/api/loginSign";
|
import { getOneComputerAuthApi } from "@/assets/js/api/loginSign";
|
||||||
@ -532,12 +558,17 @@ import { selectNoticeRemindSoundApi } from "@/assets/js/api/configManage";
|
|||||||
import LoginInfo from "./components/loginInfo.vue";
|
import LoginInfo from "./components/loginInfo.vue";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import CryptoJS, { MD5 } from "crypto-js";
|
import CryptoJS, { MD5 } from "crypto-js";
|
||||||
|
import versionData from "../../../package.json";
|
||||||
export default {
|
export default {
|
||||||
name: "login",
|
name: "login",
|
||||||
components: { getcode, LoginInfo },
|
components: { getcode, LoginInfo },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
percentage: 0,
|
||||||
|
percentageTitle: "正在下载中,请稍后",
|
||||||
|
cardDialog2: false,
|
||||||
|
equipmentBgImg: "",
|
||||||
|
|
||||||
firstLoginDialog: false,
|
firstLoginDialog: false,
|
||||||
isLoadingBtn: false,
|
isLoadingBtn: false,
|
||||||
isShowContent: false,
|
isShowContent: false,
|
||||||
@ -708,7 +739,17 @@ export default {
|
|||||||
|
|
||||||
// 打包客户端的时候要打开此注释,打包客户端的时候要打开此注释
|
// 打包客户端的时候要打开此注释,打包客户端的时候要打开此注释
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$alert("请拔掉网线,使用局域网wife访问!!");
|
// 检测Electron环境
|
||||||
|
// this.$alert(versionData);
|
||||||
|
console.log("Electron应用");
|
||||||
|
if (
|
||||||
|
window.__isElectron ||
|
||||||
|
navigator.userAgent.includes("Electron") ||
|
||||||
|
(typeof process !== "undefined" && process.versions?.electron)
|
||||||
|
) {
|
||||||
|
this.$alert("请拔掉网线,使用局域网wifi访问!");
|
||||||
|
this.viewVersionInfo();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (encryption) {
|
if (encryption) {
|
||||||
@ -846,6 +887,104 @@ export default {
|
|||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
methods: {
|
methods: {
|
||||||
|
viewVersionInfo() {
|
||||||
|
console.log("进入页面调用", versionData);
|
||||||
|
const { version } = versionData;
|
||||||
|
//获取当前应用版本
|
||||||
|
getExeVersion({}).then((res) => {
|
||||||
|
if (res.result) {
|
||||||
|
console.log("获取平台版本名称", res.result.versionName);
|
||||||
|
let jxjAppVersionName = res.result.versionName;
|
||||||
|
console.log("获取平台版本号", res.result.versionNo);
|
||||||
|
let jxjAppVersionNo = res.result.versionNo;
|
||||||
|
|
||||||
|
if (res.result && jxjAppVersionNo !== version) {
|
||||||
|
this.$confirm(
|
||||||
|
"更新内容:" + res.result.versionDescribe,
|
||||||
|
"版本更新",
|
||||||
|
{
|
||||||
|
confirmButtonText: "更新",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
console.log("用户点击确定");
|
||||||
|
// var url = that.url_config + 'image/' + JSON.parse(res.result.downloadUrl)[0].url//地址拼错啦,直接返回的就是下载地址
|
||||||
|
var url = JSON.parse(res.result.downloadUrl)[0]
|
||||||
|
.url;
|
||||||
|
console.log("apk地址", url);
|
||||||
|
// this.$message.info(
|
||||||
|
// "正在后台下载更新资源,请耐心等待......"
|
||||||
|
// );
|
||||||
|
// window.open(url, "_blank");
|
||||||
|
this.cardDialog2 = true;
|
||||||
|
this.getProgress(url);
|
||||||
|
// window.open(url);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
console.log("用户点击取消");
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// this.$message.info("您已经是最新版本啦!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getProgress(rowUrl) {
|
||||||
|
//进度条恢复为 0
|
||||||
|
this.percentage = 0;
|
||||||
|
//发起请求
|
||||||
|
this.$http({
|
||||||
|
//下载文件的远端地址。
|
||||||
|
url: rowUrl,
|
||||||
|
//请求方式 get post。
|
||||||
|
method: "get",
|
||||||
|
//设置返回数据类型为base64的数据,这样才可以被new Blob() 解析。
|
||||||
|
responseType: "blob",
|
||||||
|
//请求参数 get-->params post-->data 。
|
||||||
|
params: {},
|
||||||
|
//xml返回数据的钩子函数,可以用来获取数据的进度 具体可查看axios的官网
|
||||||
|
onDownloadProgress: (progressEvent) => {
|
||||||
|
//progressEvent.loaded 下载文件的当前大小
|
||||||
|
//progressEvent.total 下载文件的总大小 如果后端没有返回 请让他加上!
|
||||||
|
let progressBar = Math.round(
|
||||||
|
(progressEvent.loaded / progressEvent.total) * 100
|
||||||
|
);
|
||||||
|
//接收进度为99%的时候需要留一点前端编译的时间
|
||||||
|
if (progressBar >= 99) {
|
||||||
|
this.percentage = 99;
|
||||||
|
this.percentageTitle = "下载完成,文件正在编译。";
|
||||||
|
} else {
|
||||||
|
this.percentage = progressBar;
|
||||||
|
this.percentageTitle = "正在下载,请耐心等待...";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}).then((res) => {
|
||||||
|
//当前定义res.message 出现的时候说明后端文件返回出现了问题 不然应该直接是个文件流
|
||||||
|
if (res.status != 200) {
|
||||||
|
this.percentageTitle = "下载失败,请重试。";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log(res.data);
|
||||||
|
// return;
|
||||||
|
// 创建一个下载链接
|
||||||
|
const url = window.URL.createObjectURL(res.data);
|
||||||
|
// 创建一个<a>元素
|
||||||
|
const link = document.createElement("a");
|
||||||
|
link.href = url;
|
||||||
|
link.download = "智慧工地系统.exe"; // 指定下载文件的文件名
|
||||||
|
// 模拟点击下载链接
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
// 释放URL对象
|
||||||
|
window.URL.revokeObjectURL(url);
|
||||||
|
this.percentageTitle = "下载完成";
|
||||||
|
//编译文件完成后,进度条展示为100%100
|
||||||
|
this.percentage = 100;
|
||||||
|
});
|
||||||
|
},
|
||||||
//首次登录修改密码提交
|
//首次登录修改密码提交
|
||||||
savePassfirstLoginBtn() {
|
savePassfirstLoginBtn() {
|
||||||
this.$refs["passwordForm"].validate((valid) => {
|
this.$refs["passwordForm"].validate((valid) => {
|
||||||
@ -1446,6 +1585,11 @@ export default {
|
|||||||
id: 9297,
|
id: 9297,
|
||||||
path: "/operateManage",
|
path: "/operateManage",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
menuName: "客户端版本管理",
|
||||||
|
id: 9301,
|
||||||
|
path: "/operateManagePc",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
menuName: "字典管理",
|
menuName: "字典管理",
|
||||||
id: 9298,
|
id: 9298,
|
||||||
|
|||||||
319
src/views/jxjadmin/operateManagePc.vue
Normal file
319
src/views/jxjadmin/operateManagePc.vue
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
<template>
|
||||||
|
<div class="fullHeight whiteBlock">
|
||||||
|
<div class="table_wrap whiteBlock">
|
||||||
|
<el-table class="tables" :data="tableData">
|
||||||
|
<el-table-column type="index" align="center" label="序号"></el-table-column>
|
||||||
|
<el-table-column prop="versionName" label="版本名称" align="center" :width="$fontSize(180)"></el-table-column>
|
||||||
|
<el-table-column prop="versionNo" label="版本号" align="center" :width="$fontSize(180)"></el-table-column>
|
||||||
|
<el-table-column prop="versionDescribe" label="版本描述" align="center" width="550px"></el-table-column>
|
||||||
|
|
||||||
|
<el-table-column prop="diffDay" label="客户端地址" align="center" width="500px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<!-- <a href="">下载</a> -->
|
||||||
|
<span @click="downloadFn(scope.row.downloadUrl)" class="hovers primaryText">下载</span>
|
||||||
|
|
||||||
|
<span @click="copyFn(scope.row)" class="hovers primaryText" style="margin-left: 20px">复制exe地址</span>
|
||||||
|
<input id="copy_content" type="text" value="" style="position: absolute; top: 0; left: 0; opacity: 0; z-index: -10" />
|
||||||
|
<span @click="previewFn(scope.row)" class="hovers primaryText" style="margin-left: 20px">预览二维码</span>
|
||||||
|
<div id="qrcode" ref="qrCodeDiv" style="position: absolute; top: 0; left: 0; opacity: 0; z-index: -10" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="address" label="操作" align="center" width="410px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div @click="configuration(scope.row)" class="operationText">
|
||||||
|
<img src="@/assets/images/icon-edit.png" class="w_15 h_15" />
|
||||||
|
<span>更新版本</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<el-dialog :modal-append-to-body="false" title="更新版本" :visible.sync="authorizedDialog" class="dialog_w667">
|
||||||
|
<div class="dialog_content">
|
||||||
|
<el-form :model="ruleForm" :rules="rules" size="medium" ref="ruleForm" :label-width="$px2rem(100)" class="demo-ruleForm">
|
||||||
|
<el-form-item label="版本名称" prop="versionName">
|
||||||
|
<el-input v-model="ruleForm.versionName" placeholder="和版本号一致"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="版本号" prop="versionNo">
|
||||||
|
<el-input v-model="ruleForm.versionNo" placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="版本描述" prop="versionDescribe">
|
||||||
|
<el-input type="textarea" v-model="ruleForm.versionDescribe" placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="上传exe" prop="downloadUrl">
|
||||||
|
<el-upload
|
||||||
|
class="upload-demo"
|
||||||
|
name="files"
|
||||||
|
:action="$store.state.UPLOADURL"
|
||||||
|
:on-remove="handleRemove"
|
||||||
|
:on-success="(res, file) => handleSuccess(res, file)"
|
||||||
|
:limit="1"
|
||||||
|
:file-list="fileList"
|
||||||
|
>
|
||||||
|
<el-button size="small" type="primary">点击上传</el-button>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button class="cancleBtn" @click="authorizedDialog = false" icon="el-icon-circle-close" size="medium">取 消</el-button>
|
||||||
|
<el-button type="primary" icon="el-icon-circle-check" @click="submitForm('ruleForm')" size="medium">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
<el-image-viewer
|
||||||
|
v-if="dialogInfo.showImgViewer"
|
||||||
|
:on-close="closeImgViewer"
|
||||||
|
:url-list="[dialogInfo.imgPreview]"
|
||||||
|
:z-index="3000"
|
||||||
|
:initial-index="dialogInfo.initialImgPreviewIndex"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { getexeVersionListApi, editexeVersionApi } from '@/assets/js/api/jxjadmin.js';
|
||||||
|
import QRCode from 'qrcodejs2';
|
||||||
|
import { isJSON } from '@/util/nowDate';
|
||||||
|
import ElImageViewer from 'element-ui/packages/image/src/image-viewer';
|
||||||
|
export default {
|
||||||
|
name: 'registerAudit',
|
||||||
|
components: { ElImageViewer },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogInfo: {
|
||||||
|
imgPreview: '',
|
||||||
|
initialImgPreviewIndex: 0,
|
||||||
|
showImgViewer: false
|
||||||
|
},
|
||||||
|
checkAll: false,
|
||||||
|
isIndeterminate: false,
|
||||||
|
cityOptions: [],
|
||||||
|
moduleInfo: { moduleId: '' },
|
||||||
|
companyArr: [],
|
||||||
|
count: 0,
|
||||||
|
|
||||||
|
searchForm: {
|
||||||
|
companyName: '',
|
||||||
|
useState: ''
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
tableData: [],
|
||||||
|
|
||||||
|
checkList: [],
|
||||||
|
authorizedDialog: false,
|
||||||
|
isEnable: 0,
|
||||||
|
time: '',
|
||||||
|
ruleForm: {
|
||||||
|
describe: '',
|
||||||
|
downloadUrl: '',
|
||||||
|
versionName: '',
|
||||||
|
versionNo: ''
|
||||||
|
},
|
||||||
|
projectNum: 1,
|
||||||
|
fileList: [],
|
||||||
|
rules: {
|
||||||
|
versionNo: [{ required: true, message: '请输入版本号', trigger: 'blur' }],
|
||||||
|
downloadUrl: [{ required: true, message: '请上传exe', trigger: 'change' }]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getListData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
closeImgViewer() {
|
||||||
|
this.dialogInfo.showImgViewer = false;
|
||||||
|
},
|
||||||
|
previewFn(row) {
|
||||||
|
console.log('预览:', row);
|
||||||
|
const url = isJSON(row.downloadUrl) && row.downloadUrl ? JSON.parse(row.downloadUrl)[0].url : '';
|
||||||
|
if (url) {
|
||||||
|
this.bindQRCode(this.$store.state.FILEURL + url);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//生成 二维码
|
||||||
|
bindQRCode(url) {
|
||||||
|
document.getElementById('qrcode').innerHTML = '';
|
||||||
|
// `${httpUrl}/doc/h5Entry/index.html?userId=${userId}&projectSn=${projectSn}`
|
||||||
|
const qrCode = new QRCode(this.$refs.qrCodeDiv, {
|
||||||
|
text: `${url}`,
|
||||||
|
width: this.$fontSize(200),
|
||||||
|
height: this.$fontSize(200),
|
||||||
|
colorDark: '#333333', //二维码颜色
|
||||||
|
colorLight: '#ffffff', //二维码背景色
|
||||||
|
correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
|
||||||
|
});
|
||||||
|
const img = qrCode._el.querySelector('img');
|
||||||
|
img.onload = () => {
|
||||||
|
//注意这里一定要在img.onload()中取src,否则取到为null
|
||||||
|
console.log('二维码:', qrCode._el.querySelector('img'), qrCode._el.querySelector('img').src);
|
||||||
|
this.dialogInfo.imgPreview = qrCode._el.querySelector('img').src;
|
||||||
|
console.log('二维码:', this.dialogInfo.imgPreview);
|
||||||
|
if (this.dialogInfo.imgPreview) {
|
||||||
|
console.log('二维码:', this.dialogInfo.imgPreview);
|
||||||
|
this.dialogInfo.showImgViewer = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
copyFn(item) {
|
||||||
|
//获取点击的值
|
||||||
|
// var clickContent = this.$store.state.FILEURL + JSON.parse(item.downloadUrl)[0].url
|
||||||
|
var clickContent = JSON.parse(item.downloadUrl)[0].url;
|
||||||
|
|
||||||
|
// var clickContent = ElementObj.innerText;
|
||||||
|
//获取要赋值的input的元素
|
||||||
|
var inputElement = document.getElementById('copy_content');
|
||||||
|
//给input框赋值
|
||||||
|
inputElement.value = clickContent;
|
||||||
|
//选中input框的内容
|
||||||
|
inputElement.select();
|
||||||
|
// 执行浏览器复制命令
|
||||||
|
document.execCommand('Copy');
|
||||||
|
//提示已复制
|
||||||
|
alert('已复制');
|
||||||
|
},
|
||||||
|
downloadFn(val) {
|
||||||
|
console.log('点击下载的数据:', val);
|
||||||
|
if (val == '[]') {
|
||||||
|
this.$message.error('未查询到附件');
|
||||||
|
} else {
|
||||||
|
let arr = [];
|
||||||
|
arr = JSON.parse(val);
|
||||||
|
arr.forEach(element => {
|
||||||
|
const fileName = element.name.substring(0, element.name.lastIndexOf('.'));
|
||||||
|
let url = this.$http.defaults.baseURL + 'xmgl/upload/getRenameFile?fileUrl=' + element.url + '&fileName=' + fileName;
|
||||||
|
// console.log(url, fileName);
|
||||||
|
window.location.href = url;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// console.log('点击下载的数据:',item);
|
||||||
|
// var url = this.$store.state.FILEURL+JSON.parse(item.downloadUrl)[0].url
|
||||||
|
// window.open(url,'_blank')
|
||||||
|
},
|
||||||
|
handleRemove(file, fileList) {
|
||||||
|
this.fileList = fileList;
|
||||||
|
},
|
||||||
|
handleSuccess(res, file) {
|
||||||
|
if (res.status == 'SUCCESS') {
|
||||||
|
this.fileList.push({
|
||||||
|
name: file.name,
|
||||||
|
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
|
||||||
|
});
|
||||||
|
this.ruleForm.downloadUrl = JSON.stringify(this.fileList);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
submitForm(formName) {
|
||||||
|
this.$refs[formName].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
// if(this.fileList.length==0){
|
||||||
|
// this.$message.success('请上传exe')
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// this.ruleForm.downloadUrl=JSON.stringify(this.fileList)
|
||||||
|
editexeVersionApi(this.ruleForm).then(res => {
|
||||||
|
this.authorizedDialog = false;
|
||||||
|
this.getListData();
|
||||||
|
this.$message.success('更新成功!');
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.log('error submit!!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
//获取列表数据
|
||||||
|
getListData() {
|
||||||
|
let data = {};
|
||||||
|
// let data = this.searchForm;
|
||||||
|
data.pageNo = this.pageNo;
|
||||||
|
data.pageSize = this.pageSize;
|
||||||
|
|
||||||
|
getexeVersionListApi(data).then(res => {
|
||||||
|
console.log(res);
|
||||||
|
this.tableData = res.result.records;
|
||||||
|
this.total = res.result.total;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
resetForm() {
|
||||||
|
this.$refs['searchForm'].resetFields();
|
||||||
|
this.getListData();
|
||||||
|
},
|
||||||
|
|
||||||
|
//显示 -- 授权配置弹窗
|
||||||
|
configuration(item) {
|
||||||
|
this.authorizedDialog = true;
|
||||||
|
this.ruleForm = JSON.parse(JSON.stringify(item));
|
||||||
|
this.fileList = JSON.parse(this.ruleForm.downloadUrl);
|
||||||
|
// this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
|
||||||
|
// confirmButtonText: '确定',
|
||||||
|
// cancelButtonText: '取消',
|
||||||
|
// type: 'warning'
|
||||||
|
// }).then(() => {
|
||||||
|
// this.$message({
|
||||||
|
// type: 'success',
|
||||||
|
// message: '删除成功!'
|
||||||
|
// });
|
||||||
|
// }).catch(() => {
|
||||||
|
// this.$message({
|
||||||
|
// type: 'info',
|
||||||
|
// message: '已取消删除'
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
|
||||||
|
//查看条数
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.pageSize = val;
|
||||||
|
this.getListData();
|
||||||
|
},
|
||||||
|
//查看页
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.pageNo = val;
|
||||||
|
this.getListData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.dialogTable {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #f5f4f5;
|
||||||
|
margin: 0 auto;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.dialogTable:last-child {
|
||||||
|
border-bottom: 1px solid #f5f4f5;
|
||||||
|
}
|
||||||
|
.dialogTable_l {
|
||||||
|
width: 120px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.dialogTable_r {
|
||||||
|
width: 94%;
|
||||||
|
padding: 5px 0;
|
||||||
|
padding-left: 30px;
|
||||||
|
border-left: 1px solid #f5f4f5;
|
||||||
|
}
|
||||||
|
.el-checkbox {
|
||||||
|
width: 46%;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
.zdy-checkbox {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
> label {
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.CheckboxTitle {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user