资产权限

master
xy 11 months ago
parent 9739d5d453
commit 445d286e4b

@ -2,6 +2,6 @@
ENV = 'production'
# base api
VUE_APP_BASE_API=http://192.168.1.31:9001/
VUE_APP_UPLOAD_API=http://192.168.1.31:9001/api/admin/upload-file
VUE_APP_BASE_API=''
VUE_APP_UPLOAD_API=/api/admin/upload-file
VUE_APP_PREVIEW=//view.langye.net/preview/onlinePreview

@ -8,6 +8,6 @@ ENV = 'prostaging'
#VUE_APP_UPLOAD_API=http://wuxiwuye.ali251.langye.net/api/admin/upload-file
#VUE_APP_PREVIEW=//view.langye.net:8012/onlinePreview
# base api
VUE_APP_BASE_API=http://192.168.221.31:9001/
VUE_APP_UPLOAD_API=http://192.168.221.31:9001/api/admin/upload-file
VUE_APP_BASE_API=''
VUE_APP_UPLOAD_API=/api/admin/upload-file
VUE_APP_PREVIEW=//view.langye.net/preview/onlinePreview

@ -14,9 +14,9 @@
<div class="right-menu">
<el-dropdown class="avatar-container" trigger="click">
<div class="avatar-wrapper">
<el-badge is-dot class="notice" @click="$router.push('/info/password')">
<i class="el-icon-bell"></i>
</el-badge>
<!-- <el-badge is-dot class="notice" @click="$router.push('/info/password')">-->
<!-- <i class="el-icon-bell"></i>-->
<!-- </el-badge>-->
<img src="../../assets/face.jpg" class="user-avatar">
<div style="display: flex;flex-direction: column;line-height: 1.25;">
<span>{{ $store.state.user.name }}</span>

@ -8,10 +8,14 @@ const state = {
safetyPlan: [],
adventSafetyPlan: [],
type: 1,
is_auth: 1,
}
let config = {}
const mutations = {
SET_AUTH: (state, auth) => {
state.is_auth = auth
},
SET_ASSETS: (state, assets) => {
state.assets = assets
},
@ -49,7 +53,8 @@ const actions = {
op: "neq",
value: 1
}
]
],
is_auth: state.is_auth
},false),
index({
table_name: "lands",
@ -61,7 +66,8 @@ const actions = {
op: "neq",
value: 1
}
]
],
is_auth: state.is_auth
})
]).then(res => {
const [houses,lands] = res;

@ -248,7 +248,7 @@
ref="xyTable"
:border="true"
:action="index"
:req-opt="select"
:req-opt="formatSelect"
:destroy-req-opt="select"
:table-item="table"
:btn-to-more="true"
@ -357,6 +357,7 @@ import imports from "@/views/component/imports.vue";
import atlas from "@/views/assets/atlas.vue";
import files from "@/views/assets/files.vue";
import handle from "@/views/assets/component/addHandle.vue";
import { deepCopy } from '@/utils'
// import assetsHistoryList from '@/views/assets/assetsHistoryList.vue'
export default {
name: 'tableList',
@ -858,6 +859,16 @@ export default {
},
computed: {
formatSelect() {
let copySelect = deepCopy(this.select)
copySelect.filter = copySelect.filter.filter(i => i.key)
copySelect.filter.push({
key: 'shifouchengzuzichan',
op: 'eq',
value: ''
})
return copySelect
},
columnArrTest() {
return function (field) {
return this.form.find((i) => i.field === field)

@ -17,10 +17,6 @@
<p class="statics-item__title">租赁面积</p>
<p class="statics-item__num">{{ leaseAreaTotal.toFixed(2) }} 平方</p>
</div>
<!-- <div class="statics-item">-->
<!-- <p class="statics-item__title">公益产业</p>-->
<!-- <p class="statics-item__num">{{ Math.round(Math.random()*5000+5000) }} 平方</p>-->
<!-- </div>-->
</el-card>
<el-card class="search-bar">
@ -32,59 +28,28 @@
size="mini"
placeholder="请选择区域"
>
<!-- @change="areaPick"-->
<el-option
v-for="(item, index) in wxAreas"
:value="index + 1"
:label="item"
></el-option>
</el-select>
<!-- <span class="search-name">地块类型</span>-->
<!-- <el-select-->
<!-- clearable-->
<!-- style="width: 120px;"-->
<!-- v-model="select.filter[2].value"-->
<!-- size="mini"-->
<!-- placeholder="请选择地块类型"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="(item, index) in dikuaileixingTypes"-->
<!-- :value="item.value"-->
<!-- :label="item.key"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- <span class="search-name">建筑类型</span>-->
<!-- <el-select-->
<!-- clearable-->
<!-- style="width: 120px;"-->
<!-- v-model="select.filter[3].value"-->
<!-- size="mini"-->
<!-- placeholder="请选择建筑类型"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="(item, index) in jianzhuleixingTypes"-->
<!-- :value="item.value"-->
<!-- :label="item.key"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- <span class="search-name">资产类型</span>-->
<!-- <el-select-->
<!-- clearable-->
<!-- style="width: 120px;"-->
<!-- v-model="select.filter[4].value"-->
<!-- size="mini"-->
<!-- placeholder="请选择资产类型"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="(item, index) in zichanleixingTypes"-->
<!-- :value="item.value"-->
<!-- :label="item.key"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<span class="search-name">资产权属</span>
<el-switch v-model="is_auth" :active-value="1" :inactive-value="0" active-text="本部" inactive-text="全部"></el-switch>
<el-select
v-model="selectDepartmentId"
v-show="!is_auth"
clearable
style="width: 110px;"
size="mini"
placeholder="请选择公司"
>
<el-option
v-for="(item, index) in departments"
:value="item.id"
:label="item.name"
></el-option>
</el-select>
<el-button size="mini" type="primary" style="margin-left: 10px;" @click="areaPick"></el-button>
</el-card>
@ -103,33 +68,6 @@
<el-input size="mini" style="margin-top: 4px;" placeholder="请输入资产名称" v-model="select.filter[1].value" clearable>
<el-button type="primary" slot="append" icon="el-icon-search" @click="areaPick"></el-button>
</el-input>
<!-- <RadioGroup v-model="select.filter[5].value" type="button" button-style="solid">-->
<!-- <Radio label="是" :value="1"></Radio>-->
<!-- <Radio label="否" :value="0"></Radio>-->
<!-- <Radio label="全部" value=""></Radio>-->
<!-- </RadioGroup>-->
<!-- <Input-->
<!-- ref="search-input"-->
<!-- v-model="select.filter[1].value"-->
<!-- style="width: 120px; margin-right: 10px"-->
<!-- placeholder="地块名称"-->
<!-- @mousedown="test"-->
<!-- />-->
<!-- <el-select-->
<!-- v-model="select.filter[0].value"-->
<!-- size="small"-->
<!-- style="width: 120px; margin-right: 10px"-->
<!-- placeholder="请选择区域"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="(item, index) in wxAreas"-->
<!-- :value="index + 1"-->
<!-- :label="item"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- <Button type="primary" @click="$refs['table'].getTableData(true)"-->
<!-- >查询</Button-->
<!-- >-->
</div>
<p style="zoom: .9;text-align: center;padding: 4px 0;font-weight: 600;">总共 {{total}} </p>
@ -151,16 +89,6 @@
</ul>
<el-empty v-else style="flex: 1;width: 100%;padding: 40px 60px;">
</el-empty>
<!-- <div>-->
<!-- <xy-table-->
<!-- ref="table"-->
<!-- :height="360"-->
<!-- :action="index"-->
<!-- :table-item="table"-->
<!-- :req-opt="selectList"-->
<!-- @row-click="pickRow"-->
<!-- ></xy-table>-->
<!-- </div>-->
</div>
</transition>
<transition name="fade">
@ -168,68 +96,6 @@
<i class="el-icon-arrow-left"></i>
</div>
</transition>
<!-- <div class="search" v-draggable="(status) => (dragging = status)">-->
<!-- <transition name="fade">-->
<!-- <div-->
<!-- class="search-btn"-->
<!-- v-if="!searchShow"-->
<!-- @click="dragging ? '' : (searchShow = true)"-->
<!-- >-->
<!-- 查询-->
<!-- </div>-->
<!-- </transition>-->
<!-- <transition name="fade">-->
<!-- <div class="search-list" v-if="searchShow">-->
<!-- <div class="search-list__close" @click="searchShow = false">-->
<!-- <i class="el-icon-arrow-right"></i>-->
<!-- </div>-->
<!-- <div-->
<!-- style="-->
<!-- display: flex;-->
<!-- justify-content: flex-start;-->
<!-- flex-wrap: wrap;-->
<!-- margin-bottom: 10px;-->
<!-- "-->
<!-- >-->
<!-- <Input-->
<!-- ref="search-input"-->
<!-- v-model="selectList.filter[1].value"-->
<!-- style="width: 120px; margin-right: 10px"-->
<!-- placeholder="地块名称"-->
<!-- @mousedown="test"-->
<!-- />-->
<!-- <el-select-->
<!-- v-model="selectList.filter[0].value"-->
<!-- size="small"-->
<!-- style="width: 120px; margin-right: 10px"-->
<!-- placeholder="请选择区域"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="(item, index) in wxAreas"-->
<!-- :value="index + 1"-->
<!-- :label="item"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- <Button type="primary" @click="$refs['table'].getTableData(true)"-->
<!-- >查询</Button-->
<!-- >-->
<!-- </div>-->
<!-- <div>-->
<!-- <xy-table-->
<!-- ref="table"-->
<!-- :height="360"-->
<!-- :action="index"-->
<!-- :table-item="table"-->
<!-- :req-opt="selectList"-->
<!-- @row-click="pickRow"-->
<!-- ></xy-table>-->
<!-- </div>-->
<!-- </div>-->
<!-- </transition>-->
<!-- </div>-->
<div class="map" id="map" :style="{ height: mapHeight + 'px' }"></div>
@ -243,12 +109,6 @@
{{ shiyongzhuangtai }}
</el-descriptions-item>
</el-descriptions>
<!-- <div class="infoWindow-container">-->
<!-- <div class="infoWindow-container__item" v-for="item in form">-->
<!-- <p>{{ item.name }}</p>-->
<!-- <p>{{ contentFormat(item) }}{{ units.get(item.field) }}</p>-->
<!-- </div>-->
<!-- </div>-->
</el-scrollbar>
<p
@ -266,6 +126,8 @@ import { index } from "@/api/system/baseForm";
import { show } from "@/api/system/customForm";
import { listdept } from "@/api/system/department";
import { getparameter } from "@/api/system/dictionary";
import { listCommondepartment } from '@/api/common'
import { deepCopy } from '@/utils'
export default {
name: "mapList",
data() {
@ -290,6 +152,8 @@ export default {
}
],
},
is_auth: 1,
selectDepartmentId: '',
select: {
//table_name: "assets",
filter: [
@ -347,6 +211,7 @@ export default {
cluster: null,
polygons: [],
markerList: [],
departments: [],
wxAreas: [
"宜兴市",
"惠山区",
@ -387,14 +252,32 @@ export default {
this.infoWindow.open(this.map, this.center);
}
},
async getDepts () {
try {
const res = await listCommondepartment({
page: 1,
page_size: 9999
})
this.departments = res.data
} catch(err) {
}
},
async getList() {
this.loading = true;
let opt = {
let opt = deepCopy({
page: 1,
page_size: 9999,
...this.select,
is_auth: 1,
is_auth: this.is_auth,
table_name: this.hasHouse === 1 ? 'lands' : 'houses'
})
if (!this.is_auth && opt.hasOwnProperty('filter') && opt.filter instanceof Array) {
opt.filter.push({
key: 'department_id',
op: 'eq',
value: this.selectDepartmentId
})
}
if (this.hasHouse === 3) {
delete opt.table_name
@ -402,13 +285,11 @@ export default {
let promise = [];
promise.push(index({
...opt,
table_name: 'lands',
is_auth: 1,
table_name: 'lands'
}))
promise.push(index({
...opt,
table_name: 'houses',
is_auth: 1,
table_name: 'houses'
}))
const res = await Promise.all(promise)
@ -862,6 +743,7 @@ export default {
}
},
created() {
this.getDepts();
this.getFormDetail();
},
async mounted() {
@ -934,7 +816,7 @@ $staticsHeight: 60px;
}
.search-bar {
.search-name {
zoom: .9;
transform: scale(.9,.9);
padding: 0 10px;
}

@ -2,6 +2,17 @@
<div style="width: 100%;height: 100%">
<div id="map">
</div>
<div class="switch-btn">
<div class="switch-btn__item">
<div>全集团</div>
<input type="radio" name="type" value="0" @input="authChange">
</div>
<div class="switch-btn__item">
<div>本部</div>
<input type="radio" name="type" value="1" checked @input="authChange">
</div>
<div class="switch-btn__bkg"></div>
</div>
<tooltip ref="tooltip" class="tooltip-table" :info="params" :area="areaName" :style="{ left: mapTooltipPos.x + 'px', top: mapTooltipPos.y + 'px' }"></tooltip>
</div>
</template>
@ -65,7 +76,10 @@ export default {
}
},
methods: {
authChange (e) {
this.$store.commit('bigdata/SET_AUTH', e.target.value)
this.$store.dispatch('bigdata/getAssets')
},
initMap () {
echarts.registerMap("wuxi", WUXI);
this.chart = echarts.init(document.querySelector("#map"))
@ -234,4 +248,63 @@ export default {
top: 0;
left: 0;
}
.switch-btn {
position: absolute;
top: 10px;
left: 10px;
display: flex;
align-items: center;
border-radius: 40px;
border: 2px solid #73f3df;
&__item {
cursor: pointer;
z-index: 2;
color: #73f3df;
position: relative;
font-size: 20px;
letter-spacing: 1px;
text-align: center;
font-weight: bold;
width: 160px;
height: 60px;
line-height: 60px;
transition: all 0.2s;
&:has(input[type=radio]:checked) {
color: #fff;
}
& > input {
cursor: pointer;
opacity: 0;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
}
&__bkg {
cursor: pointer;
z-index: 1;
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 50%;
border-radius: 40px;
background: #4fa497;
transition: all .2s;
}
&:has(.switch-btn__item:nth-child(1) input[type=radio]:checked) {
.switch-btn__bkg {
left: 0;
}
}
&:has(.switch-btn__item:nth-child(2) input[type=radio]:checked) {
.switch-btn__bkg {
left: 50%;
}
}
}
</style>

@ -55,13 +55,13 @@
<div class="bottom">
<div class="info-item">
<div class="info-item__label">承租方</div>
<div class="info-item__value">{{ showLease.chengzufang }}</div>
<div class="info-item__value">{{ showLease ? showLease.chengzufang : '' }}</div>
</div>
<div class="info-item">
<div class="info-item__label">租赁期限</div>
<div class="info-item__value">
{{ showLease.zulinkaishiqixian }} ~ {{
showLease.zulinjieshuqixian
{{ showLease ? showLease.zulinkaishiqixian : '' }} ~ {{
showLease ? showLease.zulinjieshuqixian : ''
}}
</div>
</div>
@ -130,8 +130,8 @@ export default {
].reduce(
(pre, cur) =>
pre +
(!isNaN(Number(cur.shijimianji || 0))
? Number(cur.shijimianji || 0)
(!isNaN(Number(cur?.shijimianji || 0))
? Number(cur?.shijimianji || 0)
: 0),
0
);

@ -1098,6 +1098,7 @@ export default {
shijimianji: row.shijimianji,
_chuzumianji: 0,
_relation_id: "",
ORIGINAL_DATA: row,
});
} else {
let index = this.nowAssets.findIndex(
@ -1306,6 +1307,7 @@ export default {
_chuzumianji: 0,
_relation_id: "",
land_id: row.land_id,
ORIGINAL_DATA: row,
});
} else {
let index = this.nowAssets.findIndex(
@ -1691,6 +1693,7 @@ export default {
zichanweizhi: land.zichanweizhi,
shijimianji: land.shijimianji,
_chuzumianji: item.chuzumianji || 0,
ORIGINAL_DATA: land,
_relation_id: item.id,
});
}
@ -1705,6 +1708,7 @@ export default {
shijimianji: house.shijimianji,
_chuzumianji: item.chuzumianji || 0,
_relation_id: item.id,
ORIGINAL_DATA: house,
land_id: house.land_id,
});
}

@ -231,6 +231,7 @@ export default {
try {
await sendSms({
username: this.loginForm.username,
password: this.loginForm.password
});
this.isVer = true;
this.verTime = 60;

Loading…
Cancel
Save