修改了对应统计页面

This commit is contained in:
chenze 2024-08-20 16:35:26 +08:00
parent 5c7a4f31da
commit 1d995f67e2
13 changed files with 83 additions and 49 deletions

View File

@ -1,4 +1,4 @@
NODE_ENV=development
VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL=/api
VUE_APP_MODEL_BASE_URL=https://www.chuangzhikj.com/saas-ics
VUE_APP_MODEL_BASE_URL=https://company.haxy.com.cn:4443/shoot-hand

View File

@ -1,4 +1,4 @@
NODE_ENV=production
VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL=/shoot-hand
VUE_APP_API_BASE_URL=https://company.haxy.com.cn:4443/shoot-hand
VUE_APP_MODEL_BASE_URL=https://company.haxy.com.cn:4443/shoot-hand

BIN
public/img/info.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
public/img/paidan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
public/img/paidanjump.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
public/img/time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -8,9 +8,24 @@
<a-input placeholder="请输入报修单号" v-model="queryParam.sn" />
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="报修名称">
<a-input placeholder="请输入报修名称" v-model="queryParam.name" />
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="分类名称">
<a-input placeholder="请输入分类名称" v-model="queryParam.typeName" />
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="设备名称">
<a-input placeholder="请输入设备名称" v-model="queryParam.deviceName" />
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
<a-button type="primary" @click="getRepairList()">查询</a-button>
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
</span>
</a-col>
@ -154,7 +169,11 @@ export default {
} else {
let datas = {
'menu': 7,
'type': 'all'
'type': 'all',
'sn': this.queryParam.sn,
'name': this.queryParam.name,
'typeName': this.queryParam.typeName,
'deviceName': this.queryParam.deviceName
}
getRepairList(datas).then(res => {
this.loadData = res.rows

View File

@ -68,17 +68,17 @@
<a-row>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="所属分类">
<a-select v-decorator="['typeId', {rules: [{ required: true, message: '请选择所属分类' }]}]"
<a-select :label-in-value="true" v-decorator="['typeId', {rules: [{ required: true, message: '请选择所属分类' }]}]"
@change="selectDevice">
<a-select-option v-for="item in typeList" :key="item.id" :value="item">{{ item.name }}</a-select-option>
<a-select-option v-for="item in typeList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="报修设备">
<a-select v-decorator="['deviceId', {rules: [{ required: true, message: '请选择所属设备' }]}]"
<a-select :label-in-value="true" v-decorator="['deviceId', {rules: [{ required: true, message: '请选择所属设备' }]}]"
@change="getDeviceName">
<a-select-option v-for="item in deviceList" :key="item.id" :value="item">{{ item.name }}</a-select-option>
<a-select-option v-for="item in deviceList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
@ -100,17 +100,17 @@
<a-row>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="维修负责人">
<a-select v-decorator="['repairUserId', {rules: [{ required: true, message: '请输入维修负责人' }]}]"
<a-select v-decorator="['repairUserId', {rules: [{ required: true, message: '请输入维修负责人' }]}]"
@change="selectUser">
<a-select-option v-for="item in userList" :key="item.userId">{{ item.userName }}</a-select-option>
<a-select-option v-for="item in userList" :key="item.userId" >{{ item.userName }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="报修地点">
<a-select v-decorator="['addressId', {rules: [{ required: true, message: '请选择报修地点' }]}]"
<a-select :label-in-value="true" v-decorator="['addressId', {rules: [{ required: true, message: '请选择报修地点' }]}]"
@change="selectRoomList">
<a-select-option v-for="item in addressList" :key="item.id" :value="item">{{ item.name }}</a-select-option>
<a-select-option v-for="item in addressList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
@ -118,9 +118,9 @@
<a-row>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="详细地址">
<a-select v-decorator="['floorId', {rules: [{ required: true, message: '请选择详细地址' }]}]"
<a-select :label-in-value="true" v-decorator="['floorId', {rules: [{ required: true, message: '请选择详细地址' }]}]"
@change="selectFloorName">
<a-select-option v-for="item in roomList" :key="item.id" :value="item">{{ item.name }}</a-select-option>
<a-select-option v-for="item in roomList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
</a-col>
@ -247,22 +247,23 @@ export default {
})
},
selectUser(id){
console.log(id)
},
// id
selectDevice (item) {
getRepairDeviceList({ 'typeId': item.id }).then(res => {
getRepairDeviceList({ 'typeId': item.key }).then(res => {
this.deviceList = res.rows
})
selectWorkerIdByTypeId({ 'typeId': item.id }).then(res => {
selectWorkerIdByTypeId({ 'typeId': item.key }).then(res => {
this.userList = res.data
})
this.typeName = item.name
this.typeId = item.id
this.typeName = item.label
console.log(this.typeName)
this.typeId = item.key
},
getDeviceName (item) {
this.deviceName = item.name
this.deviceId = item.id
console.log(item)
this.deviceName = item.label
this.deviceId = item.key
},
selectFailureType () {
getRepairFailureTypeList().then(res => {
@ -276,15 +277,16 @@ export default {
},
selectRoomList (item) {
getRepairRoomList({ 'addressId': item.id }).then(res => {
console.log(item)
getRepairRoomList({ 'addressId': item.key }).then(res => {
this.roomList = res.rows
})
this.address = item.name
this.addressId = item.id
this.address = item.label
this.addressId = item.key
},
selectFloorName (item) {
this.floor = item.name
this.floorId = item.id
this.floor = item.label
this.floorId = item.key
},
async handlePreview (file) {

View File

@ -35,7 +35,7 @@
</span>
</a-table>
</a-tab-pane>
<a-tab-pane key="2" tab="楼层负责人" force-render>
<a-tab-pane key="2" tab="网格长" force-render>
<a-table
size="default"
ref="table"

View File

@ -3,22 +3,25 @@
<div class="topHeadView">
<div class="itemView">
<div class="imgView"></div>
<img class="imgView" :src='baseUrl + "/img/paidan.png"'>
<div class="label">待派单</div>
<div class="num">{{ adminStatsCount.wait }}</div>
</div>
<div class="itemView">
<div class="imgView"></div>
<div class="imgContainer">
<img class="imgView" :src='baseUrl + "/img/paidanjump.png"'>
</div>
<div class="label">重派单</div>
<div class="num">{{ adminStatsCount.anew }}</div>
</div>
<div class="itemView">
<div class="imgView"></div>
<img class="imgView" :src='baseUrl + "/img/time.png"'>
<div class="label">未查看通知</div>
<div class="num">{{ adminStatsCount.newnotice }}</div>
</div>
<div class="itemView">
<div class="imgView"></div>
<img class="imgView" :src='baseUrl + "/img/info.png"'>
<div class="label">已查看通知</div>
<div class="num">{{ adminStatsCount.oldnotice }}</div>
</div>
@ -92,7 +95,7 @@
<div class="faultView">
<div class="floorView">
<div class="headView">
<div class="titleView">楼层负责人情况</div>
<div class="titleView">网格长</div>
<div class="conditionView">
<a-select :value="floor.type" @select="selectFloor" style="width: 120px;margin-right: 10px">
<a-select-option value="month">按月</a-select-option>
@ -229,6 +232,7 @@ export default {
name: 'RepairStatistics',
data () {
return {
baseUrl: process.env.BASE_URL,
type: '',
adminStatsCount: [],
repairStatsCount: [],
@ -405,7 +409,6 @@ export default {
})
},
// 使openChange
openDeviceTypeChange (open) {
this.deviceType.open = open
@ -555,8 +558,9 @@ export default {
borderWidth: 2
},
label: {
show: false,
position: 'center'
show: true,
position: 'inner',
formatter: '{d}%'
},
emphasis: {
label: {
@ -713,11 +717,18 @@ export default {
}
.topHeadView .itemView .imgView {
width: 80px;
height: 80px;
border-radius: 80px;
background: white;
}
.topHeadView .itemView .imgView {
width: 80px;
height: 80px;
background: white;
border-radius: 80px;
background: white;
}
.topHeadView .itemView .label {

View File

@ -20,8 +20,8 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="楼层">
<a-input placeholder="楼层" v-decorator="['name']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="楼层管理员">
<a-select show-search v-decorator="['adminId', {rules: [{ required: true, message: '楼层管理员' }]}]" optionFilterProp="label"
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="网格长">
<a-select show-search v-decorator="['adminId', {rules: [{ required: true, message: '网格长' }]}]" optionFilterProp="label"
>
<a-select-option v-for="item in staffLists" :key="item.id" :label="item.mobile">{{ item.username }}--{{ item.mobile}}</a-select-option>
</a-select>

View File

@ -71,7 +71,7 @@ import RepairAddressModal from '@/views/admin/repair/modules/RepairAddressModal'
dataIndex: 'name'
},
{
title: '楼层管理员',
title: '网格长',
dataIndex: 'adminName'
},
{

View File

@ -13,7 +13,8 @@ function resolve (dir) {
function getGitHash () {
try {
return GitRevision.version()
} catch (e) {}
} catch (e) {
}
return 'unknown'
}
@ -22,15 +23,15 @@ const assetsCDN = {
// https://cdn.jsdelivr.net/npm/ant-design-vue@1.3.9/dist/antd.min.css
css: [],
js: [
'/js/vue.min.js',
'/js/axios.min.js',
'/js/vue-router.min.js',
'/js/vuex.min.js',
'/js/moment.min.js',
'/js/zh-cn.min.js',
'/js/g2.min.js',
'/js/data-set.min.js',
'/js/antd-with-locales.min.js'
'/shoot-hand-html/js/vue.min.js',
'/shoot-hand-html/js/axios.min.js',
'/shoot-hand-html/js/vue-router.min.js',
'/shoot-hand-html/js/vuex.min.js',
'/shoot-hand-html/js/moment.min.js',
'/shoot-hand-html/js/zh-cn.min.js',
'/shoot-hand-html/js/g2.min.js',
'/shoot-hand-html/js/data-set.min.js',
'/shoot-hand-html/js/antd-with-locales.min.js'
]
}
// webpack build externals
@ -49,6 +50,7 @@ const prodExternals = {
// vue.config.js
const vueConfig = {
publicPath: '/shoot-hand-html/',
configureWebpack: {
externals: prodExternals,
plugins: [