Commit 3e2891c8 by xue_wengang

app Demo

parent 9926fff2
<template>
<!--左侧导航-->
<div class="leftMenu"
:style="{ width: isCollapse == true ? '0px' : '240px' }">
<div
class="leftMenu"
:style="{ width: isCollapse == true ? '0px' : '240px' }"
>
<!--<div @click="isCollapse=!isCollapse" style="width:51px;text-align:center;color:#409EFF;cursor: pointer;line-height:36px;" :title="isCollapse == true?'展开':'收缩'"><i class="fa fa-bars"></i></div>-->
<el-menu @select="changeSidebar"
:default-active="currentBar"
class="el-menu-vertical-demo"
@open="handleMenuOpen"
@close="handleMenuClose"
:collapse="isCollapse"
active-text-color="#409EFF"
background-color="#fff"
text-color="#545c64">
<div v-for="item in leftMenu"
:key="item.index">
<el-menu
@select="changeSidebar"
:default-active="currentBar"
class="el-menu-vertical-demo"
@open="handleMenuOpen"
@close="handleMenuClose"
:collapse="isCollapse"
active-text-color="#409EFF"
background-color="#fff"
text-color="#545c64"
>
<div v-for="item in leftMenu" :key="item.index">
<!--没有子级菜单的情况-->
<el-menu-item :index="item.index"
:name="item.index"
v-if="!item.children">
<el-menu-item
:index="item.index"
:name="item.index"
v-if="!item.children"
>
<i :class="item.className"></i>
<span slot="title">{{ item.label }}</span>
</el-menu-item>
<el-submenu :index="item.index"
v-else>
<el-submenu :index="item.index" v-else>
<template slot="title">
<i :class="item.className"></i>
<span>{{ item.label }}</span>
</template>
<el-menu-item :index="item2.index"
:name="item2.index"
v-for="(item2,index2) in item.children"
:key="index2"><i :class="item2.className"></i>{{item2.label}}</el-menu-item>
<div v-for="item2 in item.children" :key="item2.index">
<!--没有子级菜单的情况-->
<el-menu-item
:index="item2.index"
:name="item2.index"
v-if="!item2.children"
>
<i :class="item2.className"></i>
<span slot="title">{{ item2.label }}</span>
</el-menu-item>
<el-submenu :index="item2.index" v-else>
<template slot="title">
<i :class="item2.className"></i>
<span>{{ item2.label }}</span>
</template>
<el-menu-item
:index="item22.index"
:name="item22.index"
v-for="(item22, index2) in item2.children"
:key="index2"
><i :class="item22.className"></i
>{{ item22.label }}</el-menu-item
>
</el-submenu>
</div>
</el-submenu>
</div>
</el-menu>
<!--<img src="../assets/img/leftMenuCover.png" style="width:180px;margin-left: 10px;" v-show="isCollapse==false">-->
</div>
......@@ -46,53 +71,64 @@ export default {
props: {
propLeftMenu: {
type: Array,
default: () => []
default: () => [],
},
sidebarItemName: String
sidebarItemName: String,
},
data () {
data() {
return {
isCollapse: false,
leftMenu: this.propLeftMenu,
currentBar: '1',
csidebarItemName: this.sidebarItemName
currentBar: "1",
csidebarItemName: this.sidebarItemName,
};
},
watch: {
sidebarItemName (val) {
if (val == 'ykpgbg' || val == 'fwrz') {
sidebarItemName(val) {
if (val == "ykpgbg" || val == "fwrz") {
this.csidebarItemName = "dwfwyktj";
}
}
},
},
methods: {
handleMenuOpen (key, keyPath) {
handleMenuOpen(key, keyPath) {
console.log(key, keyPath);
},
handleMenuClose (key, keyPath) {
handleMenuClose(key, keyPath) {
console.log(key, keyPath);
},
changeSidebar (index) {
changeSidebar(index) {
this.$emit("changeSidebarIndex", index, this.leftMenu);
}
},
},
mounted () {
mounted() {
let self = this;
if (self.csidebarItemName == 'yyrzgl' || self.csidebarItemName == 'ydsbgl' || self.csidebarItemName == 'dlrz' || self.csidebarItemName == 'gnsyrz' || self.csidebarItemName == 'gnfwtj' || self.csidebarItemName == 'ldfwrz') {//访问运控菜单
let index = self.leftMenu.findIndex(item => item.id == 'fwyk');
self.leftMenu[index].children.forEach(item2 => {
if (
self.csidebarItemName == "dlrz" ||
self.csidebarItemName == "gnsyrz" ||
self.csidebarItemName == "gnfwtj" ||
self.csidebarItemName == "ldfwrz"
) {
//访问运控菜单
let index = self.leftMenu.findIndex((item) => item.id == "fwyk");
self.leftMenu[index].children.forEach((item2) => {
if (item2.id == self.csidebarItemName) {
self.currentBar = (item2.index).toString();
self.currentBar = item2.index.toString();
}
});
} else {
if (self.csidebarItemName == 'ykpgbg' || self.csidebarItemName == 'fwrz') {
if (
self.csidebarItemName == "ykpgbg" ||
self.csidebarItemName == "fwrz"
) {
self.csidebarItemName = "dwfwyktj";
}
let index = self.leftMenu.findIndex(item => item.id == self.csidebarItemName);
let index = self.leftMenu.findIndex(
(item) => item.id == self.csidebarItemName
);
self.currentBar = (index + 1).toString();
}
}
},
};
</script>
......
......@@ -209,10 +209,10 @@
>
<el-button
plain
v-if="pageBs == 'jszcyygl' || pageBs == 'jsj'"
class="zdybtn export"
size="small"
@click="$emit('add')"
v-if="pageFlag == 'jszcyygl'"
><i
class="el-icon-plus"
aria-hidden="true"
......@@ -220,6 +220,24 @@
></i
>新增</el-button
>
<el-button
plain
v-if="pageBs == 'jsj'"
class="zdybtn export"
size="small"
@click="$emit('xtzdpzyq')"
style="width:130px;margin-left:30px"
>系统最低配置要求</el-button
>
<el-button
plain
v-if="pageBs == 'jsj'"
class="zdybtn export"
size="small"
@click="$emit('mbgx')"
style="width:90px;margin-left:30px"
>模板更新</el-button
>
<span
class="total"
:style="{
......@@ -271,7 +289,7 @@
align="center"
label="操作"
width="200"
v-if="pageFlag == 'jszcyygl'"
v-if="pageBs == 'jszcyygl' || pageBs == 'jsj'"
>
<template slot-scope="scope">
<el-button
......@@ -286,6 +304,37 @@
size="small"
>删除</el-button
>
<el-button
@click="$emit('yysq', scope.row)"
type="text"
size="small"
v-if="pageBs == 'jsj'"
>应用授权</el-button
>
<el-button @click="$emit('yyjk', scope.row)" type="text" size="small" v-if="pageBs == 'jsj'"
>应用监控</el-button
>
</template>
</el-table-column>
<el-table-column
align="center"
label="操作"
width="200"
v-if="pageBs == 'ydyxjk'"
>
<template slot-scope="scope">
<el-button
@click="$emit('yypz', scope.row)"
type="text"
size="small"
>应用配置</el-button
>
<el-button
@click="$emit('rzqk', scope.row)"
type="text"
size="small"
>日志情况</el-button
>
</template>
</el-table-column>
<el-table-column
......@@ -602,6 +651,11 @@ export default {
pageBs: String,
activeUserNum: Number, //鲜活用户数
activeUserNumIn: Number, //在线人数
jsjTableDate: {
type: Array,
default: () => [],
},
jsjTableDataLength: Number
},
data () {
return {
......@@ -1011,7 +1065,11 @@ export default {
}
}
if (flag) {
if (self.pageBs == "ydjwZdbbgl") {
if(self.pageBs == "jsj" || self.pageBs == "ydyxjk"){
self.tableData = self.jsjTableDate;
self.tableDataLength = self.jsjTableDataLength;
self.closeLoading();
}else if (self.pageBs == "ydjwZdbbgl") {
let params = new FormData();
debugger;
params.append("page", json.page);
......@@ -1143,13 +1201,17 @@ export default {
self.closeLoading();
}
},
// watch:{
// peopleDate(val,old){
// if(val != old){
// this.gerData()
// }
// }
// }
watch:{
cxDefaultFormThead: {
handler (newfaultFormThead, oldName) {
this.propdefaultFormThead = JSON.parse(
JSON.stringify(newfaultFormThead)
);
console.log("propdefaultFormThead", this.propdefaultFormThead);
},
immediate: true,
},
}
};
</script>
<style>
......
......@@ -75,6 +75,24 @@ export default [
component: () => import("@/views/rzcx/addJszcyy.vue")
},
{
path: "/addYdyyzc",
name: "addYdyyzc",
meta: {
title: '移动应用管理',
auth: 5
},
component: () => import("@/views/rzcx/addYdyyzc.vue")
},
{
path: "/ydyyglDetail",
name: "ydyyglDetail",
meta: {
title: '移动应用管理',
auth: 5
},
component: () => import("@/views/rzcx/ydyyglDetail.vue")
},
{
path: "/addCggl",
name: "addCggl",
meta: {
......@@ -342,6 +360,30 @@ export default [
}
},
{
path: "ydyyzc",
name: "ydyyzc",
component: () => import("@/views/rzcx/ydyyzc.vue"),
meta: {
title: "运控管理"
}
},
{
path: "ydyxjk",
name: "ydyxjk",
component: () => import("@/views/rzcx/ydyxjk.vue"),
meta: {
title: "运控管理"
}
},
{
path: "ydyysj",
name: "ydyysj",
component: () => import("@/views/rzcx/ydyysj.vue"),
meta: {
title: "运控管理"
}
},
{
path: "ydsbgl",
name: "ydsbgl",
component: () => import("@/views/rzcx/ydsbgl.vue"),
......@@ -349,6 +391,14 @@ export default [
title: "运控管理"
}
}, {
path: "/ydsbsj",
name: "ydsbsj",
meta: {
title: '移动运营管理',
auth: 5
},
component: () => import("@/views/rzcx/ydsbsj.vue")
}, {
path: "yyrzgl",
name: "yyrzgl",
component: () => import("@/views/rzcx/yyrzgl.vue"),
......
......@@ -12159,13 +12159,55 @@ let rzcxPropLeftMenu = [
className: 'iconfont iconyidongzhongduanAPPyunkong',
children: [
{
id: 'ydyyzc',
label: '移动应用管理',
index: '9-1',
children: [
{
id: 'ydyyzc',
label: '应用注册',
index: '9-1-1'
},
{
id: 'ydyysj',
label: '应用升级',
index: '9-1-2'
},
]
},
{
id: 'ydsbgl',
label: '移动设备管理',
index: '9-1'
}, {
index: '9-2'
},
{
id: 'ydyyzc',
label: '移动运营管理',
index: '9-3',
children: [
{
id: 'ydsbsj',
label: '设备安全审计',
index: '9-3-1'
},
{
id: 'ydyxjk',
label: '应用运行监控',
index: '9-3-2'
},
{
id: 'ydyysj',
label: '应用升级',
index: '9-3-3'
},
]
},
{
id: 'yyrzgl',
label: '应用日志管理',
index: '9-2'
index: '9-4'
},]
},
// {
......@@ -13885,6 +13927,10 @@ let sjzyykglDefaultFormThead = [
label: '鲜活情况',
prop: 'sjzy_xhqk'
},
{
label: "数据清洗量",
prop: "sjzy_count"
},
{
label: '上次访问时间',
prop: 'sjzy_fwqk'
......@@ -13942,8 +13988,8 @@ let jjwzdjappykglDefaultFormThead = [
prop: 'appxzs'
},
{
label: 'APP授权数',
prop: 'appsqs'
label: "APP授权数",
prop: "appsqs"
},
{
label: '应用情况',
......
<template>
<!--左侧导航-->
<div class="leftMenu"
:style="{ width: isCollapse == true ? '0px' : '224px' }">
<div
class="leftMenu"
:style="{ width: isCollapse == true ? '0px' : '224px' }"
>
<!--<div @click="isCollapse=!isCollapse" style="width:51px;text-align:center;color:#409EFF;cursor: pointer;line-height:36px;" :title="isCollapse == true?'展开':'收缩'"><i class="fa fa-bars"></i></div>-->
<el-menu @select="changeSidebar"
:default-active="currentBar"
class="el-menu-vertical-demo"
@open="handleMenuOpen"
@close="handleMenuClose"
:collapse="isCollapse"
active-text-color="#409EFF"
background-color="#fff"
text-color="#545c64">
<div v-for="item in leftMenu"
:key="item.index">
<el-menu
@select="changeSidebar"
:default-active="currentBar"
class="el-menu-vertical-demo"
@open="handleMenuOpen"
@close="handleMenuClose"
:collapse="isCollapse"
active-text-color="#409EFF"
background-color="#fff"
text-color="#545c64"
>
<div v-for="item in leftMenu" :key="item.index">
<!--没有子级菜单的情况-->
<el-menu-item :index="item.index"
:name="item.index"
v-if="!item.children">
<el-menu-item
:index="item.index"
:name="item.index"
v-if="!item.children"
>
<i :class="item.className"></i>
<span slot="title">{{ item.label }}</span>
</el-menu-item>
<el-submenu :index="item.index"
v-else>
<template slot="title">
<i :class="item.className"></i>
<span>{{ item.label }}</span>
</template>
<el-menu-item :index="item2.index"
:name="item2.index"
v-for="(item2,index2) in item.children"
:key="index2"><i :class="item2.className"></i>{{item2.label}}</el-menu-item>
</el-submenu>
<div v-else class="three_children" style="color:#fff">
<el-submenu :index="item.index">
<template slot="title">
<i :class="item.className"></i>
<span>{{ item.label }}</span>
</template>
<el-menu-item
:index="item2.index"
:name="item2.index"
v-for="(item2, index2) in item.children"
:key="index2"
><i :class="item2.className"><span>{{ item2.label }}</span></i></el-menu-item
>
</el-submenu>
</div>
</div>
</el-menu>
<!--<img src="../assets/img/leftMenuCover.png" style="width:180px;margin-left: 10px;" v-show="isCollapse==false">-->
</div>
......@@ -46,58 +54,70 @@ export default {
props: {
propLeftMenu: {
type: Array,
default: () => []
default: () => [],
},
sidebarItemName: String
sidebarItemName: String,
},
data () {
data() {
return {
isCollapse: false,
leftMenu: this.propLeftMenu,
currentBar: '1',
csidebarItemName: this.sidebarItemName
currentBar: "1",
csidebarItemName: this.sidebarItemName,
};
},
watch: {
sidebarItemName (val) {
if (val == 'ykpgbg' || val == 'fwrz') {
sidebarItemName(val) {
if (val == "ykpgbg" || val == "fwrz") {
this.csidebarItemName = "dwfwyktj";
}
}
},
},
methods: {
handleMenuOpen (key, keyPath) {
handleMenuOpen(key, keyPath) {
console.log(key, keyPath);
},
handleMenuClose (key, keyPath) {
handleMenuClose(key, keyPath) {
console.log(key, keyPath);
},
changeSidebar (index) {
changeSidebar(index) {
this.$emit("changeSidebarIndex", index, this.leftMenu);
}
},
},
mounted () {
mounted() {
let self = this;
if (self.csidebarItemName == 'yyrzgl' || self.csidebarItemName == 'ydsbgl' || self.csidebarItemName == 'dlrz' || self.csidebarItemName == 'gnsyrz' || self.csidebarItemName == 'gnfwtj' || self.csidebarItemName == 'ldfwrz') {//访问运控菜单
let index = self.leftMenu.findIndex(item => item.id == 'fwyk');
self.leftMenu[index].children.forEach(item2 => {
if (
self.csidebarItemName == "dlrz" ||
self.csidebarItemName == "gnsyrz" ||
self.csidebarItemName == "gnfwtj" ||
self.csidebarItemName == "ldfwrz"
) {
//访问运控菜单
let index = self.leftMenu.findIndex((item) => item.id == "fwyk");
self.leftMenu[index].children.forEach((item2) => {
if (item2.id == self.csidebarItemName) {
self.currentBar = (item2.index).toString();
self.currentBar = item2.index.toString();
}
});
} else {
if (self.csidebarItemName == 'ykpgbg' || self.csidebarItemName == 'fwrz') {
if (
self.csidebarItemName == "ykpgbg" ||
self.csidebarItemName == "fwrz"
) {
self.csidebarItemName = "dwfwyktj";
}
let index = self.leftMenu.findIndex(item => item.id == self.csidebarItemName);
let index = self.leftMenu.findIndex(
(item) => item.id == self.csidebarItemName
);
self.currentBar = (index + 1).toString();
}
}
},
};
</script>
<style scoped lang="scss">
@import "../../assets/styles/leftMenu.scss";
.leftMenu .el-menu /deep/ .el-menu-item {
padding-left: 60px !important;
font-size: 16px !important;
......
<template>
<div class="formContent" v-loading="loading">
<div class="subTitle">
<span class="subTitle_shuxian"></span>
<div class="subTitle_title">{{ title }}</div>
</div>
<el-form
ref="form"
:model="form"
label-width="120px"
style="margin-top: 20px"
>
<el-row :gutter="20">
<el-col :span="8"
><div class="grid-content bg-purple">
<el-form-item
label="应用代码"
prop="yydm"
:rules="{
required: true,
message: '请输入应用代码',
trigger: 'blur',
}"
>
<el-input v-model="form.yydm"></el-input>
</el-form-item></div
></el-col>
<el-col :span="8"
><div class="grid-content bg-purple">
<el-form-item
label="应用名称"
prop="yymc"
:rules="{
required: true,
message: '请输入应用名称',
trigger: 'blur',
}"
>
<el-input v-model="form.yymc"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8"
><div class="grid-content bg-purple">
<el-form-item
label="应用配置"
prop="yypz"
>
<el-input v-model="form.yypz"></el-input>
</el-form-item></div
></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="15">
<el-form-item
label="应用内容"
prop="yynr"
>
<el-input v-model="form.yynr" type="textarea" :rows="4"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="15">
<el-form-item
label="备注"
prop="bz"
>
<el-input v-model="form.bz" type="textarea" :rows="4"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="btnWrap">
<el-button type="primary" size="small" @click="save">保存</el-button>
</div>
</div>
</template>
<script>
import url from "@/api/base";
import request from "@/utils/axiosHttp.js";
import qs from "qs";
export default {
data() {
return {
form: {
yydm: "",
yymc: "",
yynr: "",
yjpz: "",
bz: "",
yypz:"",
},
title: "新增应用",
};
},
methods: {
save() {
this.$refs.form.validate((valid) => {
if (valid) {
this.form.zzdw = JSON.parse(
sessionStorage.getItem("userInfo")
).unitcode;
if (this.$route.query.xxzjbh) {
this.form.xxzjbh = this.$route.query.xxzjbh;
this.doQueryRequest(this.form, "/ypzc/updateYpzccgyj").then(
(res) => {
if (res.code == 200) {
this.$message.success("保存成功");
this.$router.push({
path: "/rzcxIndex/jszcyygl",
});
}
}
);
} else {
this.doQueryRequest(this.form, "/ypzc/saveYpzccgyj").then((res) => {
if (res.code == 200) {
this.$message.success("保存成功");
this.$router.push({
path: "/rzcxIndex/jszcyygl",
});
}
});
}
} else {
setTimeout(() => {
// this.$message("请填写必填字段");
this.$alert("请填写必填字段!", "提示", {
confirmButtonText: "确定",
type: "warning",
});
return false;
}, 100);
}
});
},
getShuju() {
let res = JSON.parse(sessionStorage.getItem("jsj"));
for (const key in this.form) {
this.$set(this.form, key, res[key]);
}
/* this.doQueryRequest(
{ xxzjbh: this.$route.query.xxzjbh },
"/ypzc/getYpyjzcxq"
).then((res) => {
if (res.code == 200) {
for (const key in this.form) {
if (key == "yynr") {
this.$set(this.form, key, res.data.yjzc["yjsj"]);
} else {
this.$set(this.form, key, res.data.yjzc[key]);
}
}
this.loading = false;
}
}); */
},
doQueryRequest(form, cxUrl) {
/*post方法*/
return request({
url: url.rzURL + cxUrl,
data: qs.stringify(form),
method: "post",
headers: {
"content-type": "application/x-www-form-urlencoded",
},
});
},
},
created() {
if (this.$route.query.xxzjbh) {
this.title = "修改众创任务";
this.getShuju();
// this.loading = true;
}
},
};
</script>
<style scoped lang="scss">
.formContent {
width: 1180px;
background: #ffffff;
border: 1px solid #e4e4e4;
opacity: 1;
border-radius: 8px;
margin: 20px auto;
.subTitle {
display: flex;
align-items: center;
margin: 15px 20px;
.subTitle_shuxian {
width: 4px;
height: 16px;
background: #ff8d1e;
opacity: 1;
margin-right: 12px;
}
.subTitle_title {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
line-height: 22px;
color: #1a1a1a;
opacity: 1;
}
}
.btnWrap {
text-align: right;
margin: 10px 20px;
}
}
</style>
\ No newline at end of file
......@@ -4,16 +4,16 @@
<div class="left">
<i class="iconfont iconzidianmaxuanze"></i><span>运控管理</span>
</div>
<div class="left"
@click="toDp"
style=" cursor: pointer;">
<div class="left" @click="toDp" style=" cursor: pointer;">
<i class="iconfont icondapingzhongduan"></i><span>运控管理门户</span>
</div>
</div>
<div class="content">
<left-menu :propLeftMenu="propLeftMenu"
@changeSidebarIndex="changeSidebarIndex"
:sidebarItemName="sidebarItemName"></left-menu>
<left-menu
:propLeftMenu="propLeftMenu"
@changeSidebarIndex="changeSidebarIndex"
:sidebarItemName="sidebarItemName"
></left-menu>
<div class="rightContent">
<router-view></router-view>
</div>
......@@ -34,7 +34,7 @@ export default {
components: {
leftMenu,
},
data () {
data() {
return {
sidebarItemName: this.$route.name,
headerTitle: rzcxHeaderTitle,
......@@ -43,15 +43,14 @@ export default {
};
},
methods: {
toDp () {
toDp() {
let routeData = this.$router.resolve({
path: "/ykgldpIndex",
});
window.open(routeData.href, "_blank");
},
changeSidebarIndex (index, item) {
console.log(index, item, 11);
// debugger
changeSidebarIndex(index, item) {
debugger
if (index.indexOf("-") == -1) {
this.sidebarItemName = item[index - 1].id;
this.$router.push({
......@@ -59,16 +58,22 @@ export default {
});
} else {
//子级的情况有-,如3-1
let arr = index.split("-");
this.sidebarItemName = item[arr[0] - 1].children[arr[1] - 1].id;
this.$router.push({
path: item[arr[0] - 1].children[arr[1] - 1].id,
query: { 'path': item[arr[0] - 1].children[arr[1] - 1].label },
});
let arr = index.split("-");
if(arr.length == 2 ){
this.sidebarItemName = item[arr[0] - 1].children[arr[1] - 1].id;
this.$router.push({
name: item[arr[0] - 1].children[arr[1] - 1].id,
});
}else{
this.sidebarItemName = item[arr[0] - 1].children[arr[1] - 1].children[arr[2] - 1].id;
this.$router.push({
name: item[arr[0] - 1].children[arr[1] - 1].children[arr[2] - 1].id,
});
}
}
},
},
mounted () { },
mounted() {},
};
</script>
<style scoped lang="scss">
......@@ -85,10 +90,10 @@ export default {
font-family: Source Han Sans CN;
font-weight: bold;
color: #ffffff;
span {
span{
padding-left: 12px;
}
i {
i{
font-size: 20px;
}
}
......
......@@ -132,21 +132,16 @@ export default {
}
},
tableData: [],
columObj: {
visble: false,
loading: false,
columnData: [
{
text: true,
prop: "ip",
editRow: undefined,
label: "IP地址",
align: "center",
}, {
text: true,
prop: "mac",
editRow: undefined,
label: "MAC地址",
label: "IMEI地址",
align: "center",
}, {
text: true,
......@@ -233,8 +228,69 @@ export default {
},]
}]
},
}
columObj: {
visble: false,
loading: false,
columnData: [
{
text: true,
prop: "mac",
editRow: undefined,
label: "IMEI地址",
align: "center",
},
{
text: true,
prop: "sbpp",
editRow: undefined,
label: "设备品牌",
align: "center",
},
{
text: true,
prop: "sbmc",
editRow: undefined,
label: "设备名称",
align: "center",
},
{
text: true,
prop: "sbxh",
editRow: undefined,
label: "设备型号",
align: "center",
},
{
text: true,
prop: "bdidcard",
editRow: undefined,
label: "绑定用户身份证",
align: "center",
},
{
text: true,
prop: "bdxm",
editRow: undefined,
label: "绑定姓名",
align: "center",
},
{
colorText: true,
prop: "sbzt",
editRow: undefined,
label: "设备状态",
align: "center",
},
{
text: true,
prop: "bz",
editRow: undefined,
label: "备注",
align: "center",
}
],
},
};
},
created () {
......
<template>
<div>
<right-content
:header="header"
:cxFormData="cxFormData"
:cxQueryField="cxQueryField"
:cxDefaultFormThead="cxDefaultFormThead"
:cxUrl="cxUrl"
:pageBs="pageBs"
:jsjTableDate="jsjTableDate"
:jsjTableDataLength="jsjTableDataLength"
@yypz="yypz"
@rzqk="rzqk"
ref="rightContent"
></right-content>
<el-dialog
title="系统最低配置要求"
:visible.sync="dialogVisible"
width="30%"
>
<span>{{content}}</span>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false"
>确 定</el-button
>
</span>
</el-dialog>
<el-dialog title="日志情况" :visible.sync="dialog" width="1000px">
<div style="padding: 10px">
<span>是否安全:<span style="color: green">安全</span></span>
</div>
<Mytable
v-loading="downLoading"
element-loading-text="下载中..."
:tableData="tableDataDia"
:columObj="columObjDia"
:pageObj="pageObjDia"
></Mytable>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialog = false">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<!--移动警务注册-->
<script>
import rightContent from "@c/ptCxForm_components.vue";
import Mytable from "@/components/Mytable.vue";
export default {
name: "ydyxjk",
components: {
rightContent,
Mytable
},
data() {
return {
cxFormData: {
dwdm: "",
limit: 10,
page: 1,
},
downLoading: false,
cxQueryField: [
{
name: "应用代码",
id: "yydm",
type: "text",
value: "",
placeholder: "",
col: "3",
},
{
name: "应用名称",
id: "yymc",
type: "text",
value: "",
placeholder: "",
col: "3",
},
{
name: "发布人",
id: "xxdjryXm",
type: "text",
value: "",
placeholder: "",
col: "3",
},
],
cxDefaultFormThead: [
{
label: "应用代码",
prop: "yydm",
},
{
/*table默认得表头*/
label: "应用名称",
prop: "yymc",
},
{
label: "应用内容",
prop: "yynr",
},
// {
// label: "应用配置",
// prop: "yypz",
// },
{
label: "备注",
prop: "bz",
},
{
label: "发布时间",
prop: "djsj",
},
{
label: "发布人",
prop: "xxdjryXm",
},
],
cxUrl: "/getFunctionService/getYkglSjzcMessage",
header: "应用运行监控",
pageBs: "ydyxjk",
jsjTableDataLength: 12,
jsjTableDate: [
{
yydm: "0701",
yymc: "证件核查",
yynr: "证件核查",
yypz: "身份证号码必须符合身份证规则",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0702",
yymc: "人像核查",
yynr: "人像核查",
yypz: "必须有人员照片",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0703",
yymc: "车辆核查",
yynr: "车辆核查",
yypz: "必须有正确的车牌号码",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0704",
yymc: "协同工作",
yynr: "协同工作",
yypz: "必须有正确的案件编号",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0705",
yymc: "案件侦办",
yynr: "案件侦办",
yypz: "必须有正确案件号码",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0706",
yymc: "智能检索",
yynr: "智能检索",
yypz: "必须有正确的检索信息",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0707",
yymc: "周边信息",
yynr: "周边信息",
yypz: "必须有正确的周边信息",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0708",
yymc: "现场采集",
yynr: "现场采集",
yypz: "必须有正确的勘验编号",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0709",
yymc: "人员一体化采集",
yynr: "人员一体化采集",
yypz: "必须有正确的身份证号码",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0710",
yymc: "电子笔录",
yynr: "电子笔录",
yypz: "必须有正确的案件编号",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
],
dialogVisible:false,
columObjDia: {
visble: false,
loading: false,
columnData: [
{
text: true,
prop: "xxczryXm",
editRow: undefined,
label: "用户姓名",
align: "center",
},
{
text: true,
prop: "yymcdmStr",
editRow: undefined,
label: "应用名称",
align: "center",
},
{
text: true,
prop: "yymcJyqk",
editRow: undefined,
label: "操作名称",
align: "center",
},
{
text: true,
prop: "fwsj",
editRow: undefined,
label: "操作时间",
align: "center",
},
{
text: true,
prop: "yhIp",
editRow: undefined,
label: "IP",
align: "center",
},
{
text: true,
prop: "xxdjdwGajgmc",
editRow: undefined,
label: "用户单位",
align: "center",
},
{
text: true,
prop: "xxdjryLxdh",
editRow: undefined,
label: "用户联系电话",
align: "center",
},
{
text: true,
prop: "czxxJyqk",
editRow: undefined,
label: "操作内容",
align: "center",
},
],
},
pageObjDia: {
//分页对象
total: 10,
pageData: {
page: 1,
size: 10,
},
},
tableDataDia: [
{
xxczryXm: "王志强",
czxxJyqk:
"执行[查询]动作,参数为:,cxSj:2023-10-01 00:00:00 - 2023-10-31 00:00:00,page:1,limit:10",
fwsj: "2023-11-07 15:13:33",
rzlsh: "460000202311071000000233487505",
xxdjdwGajgjgdm: "460000000000",
xxdjdwGajgmc: "海南省公安厅",
xxdjryLxdh: "19585699956",
yhGmsfhm: "123452123401X1000X",
yhIp: "172.26.252.82",
yymcJyqk: "查询登陆日志",
yymcdm: "0602",
yymcdmStr: "运控管理",
},
],
dialog: false,
content:"",
};
},
methods: {
yypz({yypz}) {
this.content = yypz
this.dialogVisible = true;
},
rzqk(){
this.dialog = true
},
},
};
</script>
<style scoped>
</style>
<template>
<div class="formContent" v-loading="loading">
<div class="subTitle">
<span class="subTitle_shuxian"></span>
<div class="subTitle_title">众创任务详情</div>
</div>
<div class="infos">
<div
:class="'infoWrap' + item.index"
v-for="item in infoList"
:key="item.id"
>
<span class="name">{{ item.name }}:</span>
<span class="infoContent">{{ item.content }}</span>
</div>
</div>
</div>
</template>
<script>
import url from "@/api/base";
import request from "@/utils/axiosHttp.js";
import qs from "qs";
export default {
data() {
return {
infoList: [
{
name: "应用代码",
id: "yydm",
content: "",
index: 1,
},
{
name: "应用名称",
id: "yymc",
content: "",
index: 1,
},
{
name: "发布时间",
id: "djsj",
content: "",
index: 1,
},
{
name: "发布人",
id: "xxdjryXm",
content: "",
index: 1,
},
{
name: "应用内容",
id: "yynr",
content: "",
index: 2,
},
{
name: "应用配置",
id: "yypz",
content: "",
index: 2,
},
{
name: "备注",
id: "bz",
content: "",
index: 1,
},
],
};
},
methods: {
getShuju() {
debugger
let res = JSON.parse(sessionStorage.getItem("jsj"));
this.infoList.forEach((item) => {
this.$set(item, "content", res[item.id]);
});
this.loading = false;
/* this.doQueryRequest(
{ xxzjbh: this.$route.query.xxzjbh },
"/ypzc/getYpyjzcxq"
).then((res) => {
if (res.code == 200) {
this.infoList.forEach((item) => {
if (item.id == "yjsjStr") {
this.$set(item, "content", res.data.yjzc["yjsj"]);
} else {
this.$set(item, "content", res.data.yjzc[item.id]);
}
});
console.log(this.infoList);
this.loading = false;
}
}); */
},
doQueryRequest(form, cxUrl) {
/*post方法*/
return request({
url: url.rzURL + cxUrl,
data: qs.stringify(form),
method: "post",
headers: {
"content-type": "application/x-www-form-urlencoded",
},
});
},
},
created() {
if (this.$route.query.xxzjbh) {
this.getShuju();
// this.loading = true;
}
},
};
</script>
<style scoped lang="scss">
.formContent {
width: 1180px;
background: #ffffff;
border: 1px solid #e4e4e4;
opacity: 1;
border-radius: 8px;
margin: 20px auto;
.subTitle {
display: flex;
align-items: center;
margin: 15px 20px;
.subTitle_shuxian {
width: 4px;
height: 16px;
background: #ff8d1e;
opacity: 1;
margin-right: 12px;
}
.subTitle_title {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
line-height: 22px;
color: #1a1a1a;
opacity: 1;
}
}
.btnWrap {
text-align: right;
margin: 10px 20px;
}
.infos {
display: flex;
flex-wrap: wrap;
margin: 20px;
}
.infoWrap1 {
width: 50%;
}
.infoWrap2 {
width: 100%;
}
.name {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
line-height: 22px;
color: #272626;
}
.infoContent {
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
line-height: 22px;
color: #000000;
margin-left: 10px;
}
}
</style>
\ No newline at end of file
<template>
<div id="ydjwZdbbgl">
<right-content
:header="header"
:cxFormData="cxFormData"
:cxDefaultFormThead="cxDefaultFormThead"
:cxUrl="cxUrl"
:pageBs="pageBs"
ref="rightContent"
@releaseNewVersion="releaseNewVersion"
></right-content>
<el-dialog title="发布新版本信息" :visible.sync="dialogVisible" width="30%">
<div v-loading="loadingFbxbb" class="fbxbb">
<el-form ref="form" :rules="rules" :model="form">
<el-form-item prop="version" label=" 版本号:">
<el-input v-model="form.version"></el-input>
</el-form-item>
<el-form-item label="更新备注:">
<el-input type="textarea" v-model="form.gxbz"></el-input>
</el-form-item>
<el-form-item label="更新文件:">
<el-upload
class="upload-demo"
action="#"
accept=".xls,.xlsx"
:on-change="fileOnchange"
:on-remove="
(flie, fileList) => {
fileArr = fileList;
}
"
:auto-upload="false"
:http-request="() => {}"
:file-list="fileArr"
>
<el-button size="small" type="primary">选择上传</el-button>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button style="margin-left: 35%" @click="dialogVisible = false"
>取 消</el-button
>
<el-button type="primary" @click="submitCKD('form')">确 定</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<!--警务终端及APP运控管理-->
<script>
import rightContent from "@c/ptCxForm_components.vue";
import request from "@/utils/axiosHttp.js";
import url from "@/api/base";
import {
ydjwZdbbglHeader,
ydjwZdbbglFormData,
ydjwZdbbglDefaultFormThead,
ydjwZdbbglURL,
} from "@/utils/params";
export default {
name: "sjzyykgl",
components: {
rightContent,
},
data() {
return {
rules: {
version: [{ required: true, message: "请输入版本号", trigger: "blur" }],
},
form: {
version: "",
gxbz: "",
},
fileArr: [],
loadingFbxbb: false,
dialogVisible: false,
pageBs: "ydjwZdbbgl",
cxFormData: ydjwZdbbglFormData,
// cxQueryField: ydjwZdbbglQueryField,
cxDefaultFormThead: ydjwZdbbglDefaultFormThead,
cxUrl: ydjwZdbbglURL,
header: ydjwZdbbglHeader,
};
},
methods: {
releaseNewVersion() {
(this.form = {
version: "",
gxbz: "",
}),
(this.fileArr = []);
this.dialogVisible = true;
},
fileOnchange(file, fileList) {
if (fileList.length > 0) {
this.fileArr = [fileList[0]]; // 这一步,是 展示最后一次选择的csv文件
if (fileList.length > 1) this.$message.error("只能上传一个文件!");
}
},
submitCKD(form) {
this.$refs[form].validate((valid) => {
if (valid) {
if (this.fileArr.length <= 0) {
this.$message.warning("请选择文件");
} else {
this.postFbxbbList();
}
} else {
return false;
}
});
},
postFbxbbList() {
let self = this;
self.loadingFbxbb = true;
let params = new FormData();
for (let i in self.form) {
params.append(i, self.form[i]);
}
this.fileArr.forEach((i) => {
params.append("file", i.raw);
});
self.postFbxbb(params).then((res) => {
if (res.code == 200) {
this.$refs.rightContent.doQuery("yes");
this.$message.success("发布新版本成功");
this.loadingFbxbb = false;
this.dialogVisible = false;
} else {
self.loadingFbxbb = false;
this.$message.error(res.message);
}
});
},
// 发布新版本
postFbxbb(form) {
return request({
url: url.ydjwURL + "/bbgx/fileUpload",
data: form,
method: "POST",
headers: {
"content-type": "application/x-www-form-urlencoded",
},
});
},
},
};
</script>
<style scoped lang='scss'>
.fbxbb {
padding: 20px 5px;
/deep/.el-form-item__content {
display: flex !important;
width: 63%;
}
/deep/.el-form-item__label {
width: 20%;
}
/deep/.el-form-item__error {
left: 0px;
top: 38px;
}
}
</style>
<template>
<div>
<right-content
:header="header"
:cxFormData="cxFormData"
:cxQueryField="cxQueryField"
:cxDefaultFormThead="cxDefaultFormThead"
:cxUrl="cxUrl"
:pageBs="pageBs"
:jsjTableDate="jsjTableDate"
:jsjTableDataLength="jsjTableDataLength"
@add="add"
@edit="edit"
@del="del"
@godetail="godetail"
@xtzdpzyq="xtzdpzyq"
@mbgx="mbgx"
ref="rightContent"
></right-content>
<el-dialog
title="系统最低配置要求"
:visible.sync="dialogVisible"
width="620px"
>
<div>
<p>开发的硬件环境:</p>
<p style="text-indent: 2em">
CPU:1.8G Hz; 内存:24G字节; 屏幕分辨率:1920x1080;
硬盘空间:982G字节。
</p>
<p>运行的硬件环境:</p>
<p style="text-indent: 2em">
CPU:双核2GHz及以上; 机身内存:4G以上; 屏幕分辨率:1280x720及以上。
</p>
<p>开发该软件的操作系统:</p>
<p style="text-indent: 2em">Windows 10</p>
<p>软件开发环境/开发工具:</p>
<p style="text-indent: 2em">HBuildX</p>
<p>该软件的运行平台/操作系统:</p>
<p style="text-indent: 2em">Android 4.4及以上版本</p>
<p>软件运行支撑环境/支撑软件:</p>
<p style="text-indent: 2em">
手机要求:Android
4.4及以上版本系统;CPU:双核2GHz及以上;机身内存:4G以上。
</p>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false"
>确 定</el-button
>
</span>
</el-dialog>
<el-dialog
title="系统最低配置要求"
:visible.sync="dialogBt"
width="450px"
>
<div style="padding:10px">
<el-checkbox-group v-model="checkList">
<el-checkbox v-for="item in defaultFormThead" :label="item.prop" :key="item.prop">{{item.label}}</el-checkbox>
</el-checkbox-group>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="changeMenu"
>确 定</el-button
>
</span>
</el-dialog>
</div>
</template>
<!--移动警务注册-->
<script>
import rightContent from "@c/ptCxForm_components.vue";
export default {
name: "ydyyzc",
components: {
rightContent,
},
data() {
return {
checkList:["yydm","yymc","yynr","yypz","bz","djsj","xxdjryXm"], //已选表头
dialogBt:false, //表头弹框
cxFormData: {
dwdm: "",
limit: 10,
page: 1,
},
cxQueryField: [
{
name: "应用代码",
id: "yydm",
type: "text",
value: "",
placeholder: "",
col: "3",
},
{
name: "应用名称",
id: "yymc",
type: "text",
value: "",
placeholder: "",
col: "3",
},
{
name: "发布人",
id: "xxdjryXm",
type: "text",
value: "",
placeholder: "",
col: "3",
},
],
cxDefaultFormThead: [
{
label: "应用代码",
prop: "yydm",
toInfo: true,
},
{
/*table默认得表头*/
label: "应用名称",
prop: "yymc",
},
{
label: "应用内容",
prop: "yynr",
},
{
label: "应用配置",
prop: "yypz",
},
{
label: "备注",
prop: "bz",
},
{
label: "发布时间",
prop: "djsj",
},
{
label: "发布人",
prop: "xxdjryXm",
},
],
cxUrl: "/getFunctionService/getYkglSjzcMessage",
header: "移动应用注册",
pageBs: "jsj",
jsjTableDataLength: 12,
jsjTableDate: [
{
yydm: "0701",
yymc: "证件核查",
yynr: "证件核查",
yypz: "身份证号码必须符合身份证规则",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0702",
yymc: "人像核查",
yynr: "人像核查",
yypz: "必须有人员照片",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0703",
yymc: "车辆核查",
yynr: "车辆核查",
yypz: "必须有正确的车牌号码",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0704",
yymc: "协同工作",
yynr: "协同工作",
yypz: "必须有正确的案件编号",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0705",
yymc: "案件侦办",
yynr: "案件侦办",
yypz: "必须有正确案件号码",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0706",
yymc: "智能检索",
yynr: "智能检索",
yypz: "必须有正确的检索信息",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0707",
yymc: "周边信息",
yynr: "周边信息",
yypz: "必须有正确的周边信息",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0708",
yymc: "现场采集",
yynr: "现场采集",
yypz: "必须有正确的勘验编号",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0709",
yymc: "人员一体化采集",
yynr: "人员一体化采集",
yypz: "必须有正确的身份证号码",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
{
yydm: "0710",
yymc: "电子笔录",
yynr: "电子笔录",
yypz: "必须有正确的案件编号",
bz: "无",
djsj: "2022-5-10",
xxdjryXm: "超级管理员",
},
],
dialogVisible: false,
defaultFormThead: [ //默认表头
{
label: "应用代码",
prop: "yydm",
toInfo: true,
},
{
/*table默认得表头*/
label: "应用名称",
prop: "yymc",
},
{
label: "应用内容",
prop: "yynr",
},
{
label: "应用配置",
prop: "yypz",
},
{
label: "备注",
prop: "bz",
},
{
label: "发布时间",
prop: "djsj",
},
{
label: "发布人",
prop: "xxdjryXm",
},
],
};
},
methods: {
changeMenu(){
let btarr = [];
this.checkList.forEach(item=>{
btarr.push(this.defaultFormThead.filter(sub=>sub.prop == item)[0])
})
this.cxDefaultFormThead = btarr
this.dialogBt = false;
console.log(this.cxDefaultFormThead);
},
mbgx() {
this.dialogBt = true
},
xtzdpzyq() {
this.dialogVisible = true;
},
del(item) {
let self = this;
this.$confirm("此操作将删除信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
self.$message.success("删除成功");
/* self
.doQueryRequest({ xxzjbh: item.xxzjbh }, "/ypzc/deleteYpzccgyj")
.then((res) => {
if (res.code == 200) {
self.$message.success("删除成功");
this.$refs.rightContent.doQuery("yes");
} else {
}
}); */
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
godetail(item) {
sessionStorage.setItem("jsj", JSON.stringify(item));
const length = 32;
const characters = "0123456789";
let result = "";
for (let i = 0; i < length; i++) {
result += characters.charAt(
Math.floor(Math.random() * characters.length)
);
}
this.$router.push({
path: "/ydyyglDetail",
query: { xxzjbh: result },
});
},
edit(item) {
const length = 32;
const characters = "0123456789";
let result = "";
for (let i = 0; i < length; i++) {
result += characters.charAt(
Math.floor(Math.random() * characters.length)
);
}
sessionStorage.setItem("jsj", JSON.stringify(item));
this.$router.push({
path: "/addYdyyzc",
query: { xxzjbh: result },
});
},
doQueryRequest(form, cxUrl) {
/*post方法*/
return request({
url: url.rzURL + cxUrl,
data: qs.stringify(form),
method: "post",
headers: {
"content-type": "application/x-www-form-urlencoded",
},
});
},
add() {
this.$router.push({
path: "/addYdyyzc",
});
},
},
};
</script>
<style scoped>
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment