wangxiaohua 3 роки тому
джерело
коміт
e351dfd92b
10 змінених файлів з 421 додано та 73 видалено
  1. +16
    -0
      src/api/modules/api.js
  2. +2
    -2
      src/page/index/top/index.vue
  3. +2
    -2
      src/views/Customer/AgentManagement.vue
  4. +4
    -4
      src/views/Customer/CompanyRecord.vue
  5. +44
    -35
      src/views/Equipment/index.vue
  6. +11
    -9
      src/views/Equipment/state.vue
  7. +300
    -0
      src/views/admin/app/index.vue
  8. +32
    -14
      src/views/admin/user/index.vue
  9. +8
    -5
      src/views/building/index.vue
  10. +2
    -2
      vue.config.js

+ 16
- 0
src/api/modules/api.js Переглянути файл

@@ -572,6 +572,14 @@ export function equipmentAdd(data) {
data
})
}
// 验收设备
export function equipmentAcceptance(data) {
return request({
url: 'autoSR/zk/equipment/acceptance',
method:'post',
data
})
}
// 归还设备
export function equipmentUnbind(data) {
return request({
@@ -960,3 +968,11 @@ export function receptionStatistics(query) {
params:query
})
}
// 小程序菜单管理
export function apiTree(query) {
return request({
url: 'admin/menu/apiTree',
method:'get',
params:query
})
}

+ 2
- 2
src/page/index/top/index.vue Переглянути файл

@@ -118,9 +118,9 @@
<el-dropdown-item divided>
<router-link to="/">首页</router-link>
</el-dropdown-item>
<el-dropdown-item divided>
<!-- <el-dropdown-item divided>
<router-link to="/info/index">个人信息</router-link>
</el-dropdown-item>
</el-dropdown-item> -->
<el-dropdown-item divided @click.native="$refs.seting.open()"
>界面设置
</el-dropdown-item>


+ 2
- 2
src/views/Customer/AgentManagement.vue Переглянути файл

@@ -123,8 +123,8 @@
width="150"
align="center">
<template slot-scope="scope">
<div v-if="scope.row.residueTime >0&&scope.row.lockFlag==0">在服务期内({{scope.row.residueTime}})</div>
<div v-if="scope.row.residueTime <=0&&scope.row.lockFlag==0">过期({{scope.row.residueTime}})</div>
<div v-if="scope.row.residueTime >0&&scope.row.lockFlag==0">在服务期内({{scope.row.residueTime*1>=0?scope.row.residueTime:scope.row.residueTime*-1}})</div>
<div v-if="scope.row.residueTime <=0&&scope.row.lockFlag==0">过期({{scope.row.residueTime*1>=0?scope.row.residueTime:scope.row.residueTime*-1}})</div>
<div v-if="scope.row.lockFlag==1">禁用</div>
</template>
</el-table-column>


+ 4
- 4
src/views/Customer/CompanyRecord.vue Переглянути файл

@@ -4,10 +4,10 @@
<!-- 头 -->
<div class="app-top">
<div class="app-titel" style="margin-top: 5px">
<div v-if="orgType==0" class="label">代理商名称:</div>
<!-- <div v-if="orgType==0" class="label">代理商名称:</div>
<div v-if="orgType==0">
<el-input v-model="operatorName"></el-input>
</div>
</div> -->
<div class="label">公司名称:</div>
<div>
<el-input v-model="name"></el-input>
@@ -49,13 +49,13 @@
align="center"
>
</el-table-column>
<el-table-column
<!-- <el-table-column
v-if="orgType==0"
prop="operatorName"
label="代理商"
align="center"
>
</el-table-column>
</el-table-column> -->
<el-table-column
v-if="orgType==0"
prop="operationStaffName"


+ 44
- 35
src/views/Equipment/index.vue Переглянути файл

@@ -367,37 +367,38 @@
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
command="toinifoThereturn"
v-if="row.receiveType == 2&&euq_index_back"
v-if="row.receiveType == 2 && euq_index_back"
>归还</el-dropdown-item
>
<!-- <el-dropdown-item
command="receive"
>领用</el-dropdown-item
> -->
<el-dropdown-item command="infotranscription"
<el-dropdown-item
command="infotranscription"
v-if="equ_index_change"
>转写方式</el-dropdown-item
>
<el-dropdown-item command="isAutoSwitch"
v-if="equ_index_auto"
<el-dropdown-item command="isAutoSwitch" v-if="equ_index_auto"
>自动转写</el-dropdown-item
>
<el-dropdown-item
command="acceptance"
v-if="row.acceptanceStatus == 1&&equ_index_makeSure"
v-if="row.acceptanceStatus == 1 && equ_index_makeSure"
>验收</el-dropdown-item
>
<el-dropdown-item
command="getRight"
v-if="(row.acceptanceStatus != (1 || 0))&&euq_index_normal"
v-if="row.acceptanceStatus != (1 || 0) && euq_index_normal"
>恢复正常</el-dropdown-item
>
<el-dropdown-item command="toinfobinding" v-if="orgType == 0&&equ_index_bind"
<el-dropdown-item
command="toinfobinding"
v-if="orgType == 0 && equ_index_bind"
>绑定</el-dropdown-item
>
<!-- <el-dropdown-item command="infoeditor">修改</el-dropdown-item> -->
<el-dropdown-item command="toinifodelete"
v-if="equ_index_del"
<el-dropdown-item command="toinifodelete" v-if="equ_index_del"
>删除</el-dropdown-item
>
</el-dropdown-menu>
@@ -1199,23 +1200,31 @@ export default {
});
},
//验收
acceptance() {
acceptance(row) {
this.$confirm("确认验收吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$message({
type: "success",
message: "验收成功!",
});
this.$api.api
.equipmentAcceptance({
imeis: row.imei,
})
.then((res) => {
this.$message({
type: "success",
message: "验收成功!",
});
this.equipmentManagement();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消验收",
});
.catch((err) => {
// this.$message({
// type: "info",
// message: "已取消验收",
// });
console.log(err);
});
},
// 自动转写开关
@@ -1244,10 +1253,10 @@ export default {
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消",
});
// this.$message({
// type: "info",
// message: "已取消",
// });
});
},
// 转写开关
@@ -1278,10 +1287,10 @@ export default {
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消",
});
// this.$message({
// type: "info",
// message: "已取消",
// });
});
},
//归还
@@ -1305,10 +1314,10 @@ export default {
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消归还",
});
// this.$message({
// type: "info",
// message: "已取消归还",
// });
});
},
//删除
@@ -1332,10 +1341,10 @@ export default {
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
// this.$message({
// type: "info",
// message: "已取消删除",
// });
});
},
handleSizeChange(val) {


+ 11
- 9
src/views/Equipment/state.vue Переглянути файл

@@ -129,7 +129,7 @@

clearable
collapse-tags
v-model="searchForm.uploadStatus"
v-model="searchForm.simAudioUploadStatus"
placeholder="请选择"
>
<el-option
@@ -280,7 +280,7 @@
align="center"
>
<template slot-scope="{ row }">
{{ row.simAudioUploadStatus ? "上传中" : "无上传" }}
{{ row.simAudioUploadStatus=='true' ? "上传中" : "无上传" }}
</template>
</el-table-column>
<el-table-column prop="lightStatus" label="开机指示灯" align="center">
@@ -330,11 +330,9 @@
<el-table-column prop="offStatus" label="关机类型" align="center">
<template slot-scope="{ row }">
{{
row.lightStatus == 1
? "正常关机"
: row.lightStatus == 1
? "低电关机"
: "异常关机"
row.offStatus == 1
? "正常关机": row.offStatus == 2
? "低电关机":row.offStatus == 3? "异常关机":''
}}
</template>
</el-table-column>
@@ -626,7 +624,7 @@ export default {
houseName: "", //楼盘名称
acceptanceStatus: "", //设备状态
simAudioStatus: "", //录音状态
uploadStatus: "", //上传状态
simAudioUploadStatus: "", //上传状态
offStatus: "", //关机状态
onLine: "",
},
@@ -931,10 +929,11 @@ export default {
houseName: "", //楼盘名称
acceptanceStatus: "", //设备状态
simAudioStatus: "", //录音状态
uploadStatus: "", //上传状态
simAudioUploadStatus: "", //上传状态
offStatus: "", //关机状态
onLine: "",
};
this.time=[]
this.getTableList();
},
receive(row) {
@@ -1107,6 +1106,9 @@ export default {
if (e) {
this.searchForm.startDate = e[0];
this.searchForm.endDate = e[1];
}else{
this.searchForm.startDate = '';
this.searchForm.endDate ='';
}
},
selChange() {


+ 300
- 0
src/views/admin/app/index.vue Переглянути файл

@@ -0,0 +1,300 @@
<template>
<div class="box-center">
<!-- 头 -->
<div class="app-top">
<div class="app-titel" style="margin-top: 5px">
<div style="margin-left: 20px">
<el-button
@click="addinfo()"
style="background: #2671e2; color: #ffffff"
>新增</el-button
>
</div>
</div>
</div>

<!-- 表格 -->
<div class="cen-tab">
<el-table :data="tableData" stripe style="width: 100%">
<el-table-column type="index" label="序号" width="50">
</el-table-column>
<el-table-column prop="name" label="名称" align="center">
</el-table-column>
<el-table-column prop="permission" label="描述" align="center">
</el-table-column>
<!-- scope -->
<el-table-column label="操作" align="center">
<template slot-scope="{ row }">
<el-button v-if="tem_ww_edit" type="text" @click="edit(row)">修改</el-button>
<el-button v-if="tem_ww_del" type="text" @click="del(row)">删除</el-button>
</template>
</el-table-column>
</el-table>

</div>

<el-dialog
:title="editFlag ? '修改菜单权限' : '新增菜单权限'"
:visible.sync="dialogVisible"
@close="reset"
>
<el-form
:model="ruleForm"
:rules="rules"
label-position="labelPosition"
ref="ruleForm"
label-width="140px"
style="width: 60%; margin: 0 auto"
>
<el-form-item label="名称" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form-item label="描述:" prop="permission">
<el-input type="textarea" v-model="ruleForm.permission"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="addSure()">保存</el-button>
</div>
</el-dialog>
</div>
</template>

<script>
import { mapGetters } from "vuex";
export default {
data() {
return {
currentPage: 4,
orgType:localStorage.getItem('orgType'),
value: "",
input: "",
tableData: [],
multipleSelection: [],
dialogVisible: false,
houseList: [],
ruleForm: {
name: "",
permission: "",
},
searchForm: {
correctWord: "",
wrongWord: "",
houseId: "",
},
currentPage: 1,
editFlag: false,
size: 10,
total: 10,
rules: {
name: [
{ required: true, message: "请填写名称", trigger: "change" },
],
},
};
},
computed: {
...mapGetters(["permissions"]),
},
created() {

},
mounted() {
// 获取楼盘列表
// this.zkhousePage();
this.correctFindbypage();
},
methods: {
edit(row) {
this.ruleForm = Object.assign({}, row);
this.editFlag = true;
this.dialogVisible = true;
},
del(row) {
console.log(row, "删除");
this.$confirm(`是否删除区域?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
distinguishCancelAndClose: true,
type: "warning",
}).then(() => {
axios({
url: `/autoSR/zk/correct/del`,
method: "post",
data: {
id: row.id,
},
}).then((res) => {
if (res.code == 0) {
this.$message.success("删除成功");
this.correctFindbypage();
} else {
this.$message.warning(res.resMsg);
}
});
});
},
reset() {
this.$refs.ruleForm.resetFields();
this.ruleForm = {
correctWord: "",
wrongWord: "",
memo: "",
};
},
addSure() {
// console.log(this.addressOptions)
this.$refs.ruleForm.validate((valid) => {
if (valid) {
console.log(this.ruleForm);
// 编辑
// return;
if (this.editFlag) {
console.log("编辑");
this.$api.api.correctUpdate(this.ruleForm).then((res) => {
console.log(res);
if (res.code == 0) {
this.dialogVisible = false;
this.$message.success("编辑成功");
this.correctFindbypage();
}
});
} else {
// 添加
console.log("添加");
// return;
this.$api.api
.correctAdd({
houseId: this.searchForm.houseId,
...this.ruleForm,
})
.then((res) => {
console.log(res);
if (res.code == 0) {
this.dialogVisible = false;
this.$message.success("新增常错词成功");
this.correctFindbypage();
}
});
}
}
});
},
screen() {
this.currentPage = 1;
this.correctFindbypage();
},
clascreen() {
this.searchForm.wrongWord = "";
this.searchForm.correctWord = "";
this.searchForm.houseId=this.orgType==3? localStorage.getItem('houseId'):this.houseList[0].id,
this.correctFindbypage();
},
houseChange() {
this.correctFindbypage();
},
zkhousePage() {
this.$api.api
.findHouseByUser({
orgType: localStorage.getItem("orgType"),
})
.then((res) => {
// console.log(res)
this.houseList = res.data;
if (localStorage.getItem("orgType") == 3) {
this.searchForm.houseId = localStorage.getItem("houseId");
} else {
this.searchForm.houseId = res.data[0].id;
}
// this.searchForm.houseId = res.data[0].id;
// 列表获取
this.correctFindbypage();
});
},
// 获取常错词列表
correctFindbypage() {
this.$api.api.apiTree().then((res) => {
console.log(res);
this.tableData = res.data;
});
},
addinfo() {
this.editFlag = false;
this.dialogVisible = true;
},
editor() {
this.dialogVisible = false;
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.size = val;
this.correctFindbypage();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.correctFindbypage();
},
},
};
</script>

<style scoped="scoped" lang="scss" >
.box-center {
width: 100%;
padding: 15px;
min-width: 1200px;
padding-bottom: 100px;
}
.cen-tab {
width: 100%;
padding: 15px;
background: #ffffff;
margin-top: 15px;
}
.tophove {
color: #ffffff;
background: #2671e2;
}
.app-top {
width: 100%;
background: #ffffff;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
border-radius: 4px;
padding-top: 15px;
padding-bottom: 15px;
.app-titel {
width: 100%;
display: flex;
align-items: center;
.label {
font-size: 14px;
font-weight: 400;
color: #32363d;
line-height: 14px;
width: 80px;
margin-left: 15px;
}
.toptimeqhuan {
height: 30px;
background: #ffffff;
display: flex;
align-items: center;
}
.toptimeqhuan div {
padding-left: 20px;
padding-right: 20px;
text-align: center;
line-height: 30px;
font-size: 14px;
margin-right: 15px;
border-radius: 4px;
border: 1px solid #e0e0e0;
}
}
}
</style>

+ 32
- 14
src/views/admin/user/index.vue Переглянути файл

@@ -314,7 +314,7 @@
>编辑</el-button
>
<el-button
v-if="(scope.row.orgType == 3 || scope.row.userRoleType == 8)&&sys_user_choseHouse"
v-if="(scope.row.orgType == 3)&&sys_user_choseHouse&&(scope.row.userRoleType != 8||scope.row.userRoleType != 7)"
@click="gochosehouse(scope.row)"
type="text"
size="small"
@@ -396,11 +396,11 @@
v-model="form.orgType"
placeholder="请选择组织类型"
style="width: 370px"
disabled
:disabled='losorgType!=2'
@change="typeChange"
>
<el-option label="平台" :value="0"></el-option>
<el-option label="代理商" :value="1"></el-option>
<el-option v-if='losorgType!=2' label="平台" :value="0"></el-option>
<el-option v-if='losorgType!=2' label="代理商" :value="1"></el-option>
<el-option label="公司" :value="2"></el-option>
<el-option label="楼盘" :value="3"></el-option>
</el-select>
@@ -489,7 +489,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="部门:" v-if="orgFlag && addFlag" prop="deptId">
<el-form-item label="部门:" v-if="orgFlag && addFlag&&losorgType==3" prop="deptId">
<el-select
v-model="form.deptId"
filterable
@@ -531,7 +531,7 @@
style="width: 370px"
></el-input>
</el-form-item>
<el-form-item label="手机号显隐" prop="showPhoneStatus" >
<el-form-item label="手机号加密" prop="showPhoneStatus" >
<el-radio-group v-model="formTwo.showPhoneStatus">
<el-radio :label="0">是</el-radio>
<el-radio :label="1">否</el-radio>
@@ -555,7 +555,7 @@
</el-select>
</el-form-item>
<!-- <el-form-item label="身份:" prop="newRoleId" v-if="formTwo.userRoleType!=6&&formTwo.userRoleType!=7&&formTwo.userRoleType!=8"> -->
<el-form-item label="身份:" prop="newRoleId">
<el-form-item label="身份:" v-if="orgFlag" prop="newRoleId">
<el-select
v-model="formTwo.userRoleType"
filterable
@@ -573,7 +573,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="部门:" prop="deptId" v-if="orgFlag">
<!-- <el-form-item label="部门:" prop="deptId" v-if="orgFlag">
<el-select
v-model="formTwo.deptId"
filterable
@@ -589,7 +589,7 @@
>
</el-option>
</el-select>
</el-form-item>
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisibleTwo = false">取 消</el-button>
@@ -692,8 +692,8 @@
clearable
placeholder="请选择"
>
<el-option label="未绑定" value="0"></el-option>
<el-option label="已绑定" value="1"></el-option>
<el-option label="未绑定" value="1"></el-option>
<el-option label="已绑定" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item>
@@ -937,7 +937,7 @@ export default {
if (value) {
if (!/^1[3456789]\d{9}$/.test(value)) {
// alert("手机号码不合法,请重新输入");
callback(new Error("手机号码不合法,请重新输入"));
callback(new Error("手机号格式错误,请重新输入"));
}
}
callback();
@@ -985,6 +985,7 @@ export default {
fourthList: [],
allCityList: [],
managerList: [],
houseUserRoleType:'',
bindFlag: "0",
treeClick: "", //点击样式
keywork: "", //搜索关键字
@@ -1068,6 +1069,7 @@ export default {
userRoleType:'',
},
userRoleTypeList:[],
userRoleList:[],
phoneFlag: false,
rolesOptions: [],
checkHouse: [],
@@ -1110,6 +1112,7 @@ export default {
houseVisible: false,
deptTreeList: [], //部门树
roelFlag: false,
losorgType:localStorage.getItem('orgType'),
systemFlag: true, //判断是否为系统用户
accountId: "",
passwordForm: {
@@ -1665,6 +1668,7 @@ export default {
async gochosehouse(row) {
console.log(row);
this.code = row;
this.houseUserRoleType=row.userRoleType
this.accountId = row.accountId;
this.houseVisible = true;
// 判断是否有绑定以及绑定方式
@@ -1798,9 +1802,17 @@ export default {
handleSelectionChange1(e) {
this.checkHouse = [];
console.log(e);
if(this.houseUserRoleType==6&&e.length>1){
// 单选
this.$refs.multipleTable.clearSelection();
this.$message.warning('您只能选择一个楼盘')

return
}
e.map((item) => {
this.checkHouse.push(item.id);
});

},
delIds() {
console.log(this.checkRole);
@@ -2123,6 +2135,7 @@ export default {
if (idx == 0) {
this.$api.api
.findRoleByOrgCode({
orgType:this.form.orgType,
orgCode: e,
})
.then((res) => {
@@ -2131,6 +2144,7 @@ export default {
} else {
this.$api.api
.findRoleByOrgCode({
orgType:this.form.orgType,
agentId: e,
})
.then((res) => {
@@ -2143,6 +2157,7 @@ export default {
this.formTwo.username=row.username
this.formTwo.showPhoneStatus=row.showPhoneStatus
this.formTwo.roleId=row.roleId
this.form.orgType=row.orgType
this.formTwo.accountId=row.accountId
this.formTwo.orgType=row.orgType
this.formTwo.houseId=row.houseId
@@ -2152,7 +2167,7 @@ export default {
console.log(this.formTwo);
// 获取角色列表
this.typeChange1(row)
this.userDict(
this.userDict(
{
dictKey:row.orgType,
dictType: 3,
@@ -2171,6 +2186,7 @@ export default {
.then(res=>{
this.$message.success('修改成功')
this.dialogFormVisibleTwo=false
this.roleList();
})
}
})
@@ -2193,6 +2209,7 @@ export default {
this.orgFlag = false;
this.$api.api
.findRoleByOrgCode({
orgType:this.form.orgType,
orgCode: null,
agentId: null,
})
@@ -2205,7 +2222,7 @@ export default {
this.orgCodeChange(row.agentId, 1);
} else if (row.orgType == 2) {
// 公司 选择公司和角色
this.orgFlag = true;
this.orgFlag = false;
this.orgCodeChange(row.orgCode, 0);
} else {
// 楼盘 选择公司 角色 角色身份
@@ -2227,6 +2244,7 @@ export default {
// this.agentFlag = false;
this.$api.api
.findRoleByOrgCode({
orgType:this.form.orgType,
orgCode: null,
agentId: null,
})


+ 8
- 5
src/views/building/index.vue Переглянути файл

@@ -75,7 +75,7 @@
</el-select>
</div>
<div class="div-lab">
<div class="label">使用状态:</div>
<div class="label">服务状态:</div>
<el-select
v-model="searchForm.serviceStatus"
placeholder="请选择"
@@ -209,11 +209,14 @@

<el-table-column prop="endWorking" label="合同结束日期" align="center">
</el-table-column>
<el-table-column prop="residueTime" label="剩余天数" align="center">
</el-table-column>
<!-- <el-table-column prop="residueTime" label="剩余天数" align="center">
</el-table-column> -->
<el-table-column prop="address" label="服务状态" align="center">
<template slot-scope="{ row }">
{{ row.serviceStatus == 0 ? "在服务期内" : "已过期" }}
<template slot-scope="scope">
<!-- {{ row.serviceStatus == 0 ? "在服务期内" : "已过期" }} -->
<div v-if="scope.row.residueTime >0&&scope.row.lockFlag==0">在服务期内({{scope.row.residueTime*1>=0?scope.row.residueTime:scope.row.residueTime*-1}})</div>
<div v-if="scope.row.residueTime <=0&&scope.row.lockFlag==0">过期({{scope.row.residueTime*1>=0?scope.row.residueTime:scope.row.residueTime*-1}})</div>
<div v-if="scope.row.lockFlag==1">禁用</div>
</template>
</el-table-column>
<el-table-column prop="lockFlag" label="状态" align="center">


+ 2
- 2
vue.config.js Переглянути файл

@@ -5,9 +5,9 @@
// const url = 'http://pigx-gateway'
// const url = 'http://39.97.167.65:9999' //测试
// const url = 'http://192.168.31.169:9999' //长龙
const url = 'http://192.168.31.134:9999' //嘉豪
// const url = 'http://192.168.31.134:9999' //嘉豪
// const url = 'http://192.168.31.100:9999' //王笑
// const url = 'http://jrcd6b.natappfree.cc' //王笑
const url = 'http://yuuapd.natappfree.cc' //王笑

const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']


Завантаження…
Відмінити
Зберегти