修改了对应统计页面

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 NODE_ENV=development
VUE_APP_PREVIEW=true VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL=/api 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 NODE_ENV=production
VUE_APP_PREVIEW=true 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 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-input placeholder="请输入报修单号" v-model="queryParam.sn" />
</a-form-item> </a-form-item>
</a-col> </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"> <a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <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> <a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
</span> </span>
</a-col> </a-col>
@ -154,7 +169,11 @@ export default {
} else { } else {
let datas = { let datas = {
'menu': 7, '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 => { getRepairList(datas).then(res => {
this.loadData = res.rows this.loadData = res.rows

View File

@ -68,17 +68,17 @@
<a-row> <a-row>
<a-col :span="10"> <a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="所属分类"> <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"> @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-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="10"> <a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="报修设备"> <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"> @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-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -102,15 +102,15 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="维修负责人"> <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"> @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-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="10"> <a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="报修地点"> <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"> @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-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -118,9 +118,9 @@
<a-row> <a-row>
<a-col :span="10"> <a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="详细地址"> <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"> @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-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -247,22 +247,23 @@ export default {
}) })
}, },
selectUser(id){ selectUser(id){
console.log(id)
}, },
// id // id
selectDevice (item) { selectDevice (item) {
getRepairDeviceList({ 'typeId': item.id }).then(res => { getRepairDeviceList({ 'typeId': item.key }).then(res => {
this.deviceList = res.rows this.deviceList = res.rows
}) })
selectWorkerIdByTypeId({ 'typeId': item.id }).then(res => { selectWorkerIdByTypeId({ 'typeId': item.key }).then(res => {
this.userList = res.data this.userList = res.data
}) })
this.typeName = item.name this.typeName = item.label
this.typeId = item.id console.log(this.typeName)
this.typeId = item.key
}, },
getDeviceName (item) { getDeviceName (item) {
this.deviceName = item.name console.log(item)
this.deviceId = item.id this.deviceName = item.label
this.deviceId = item.key
}, },
selectFailureType () { selectFailureType () {
getRepairFailureTypeList().then(res => { getRepairFailureTypeList().then(res => {
@ -276,15 +277,16 @@ export default {
}, },
selectRoomList (item) { selectRoomList (item) {
getRepairRoomList({ 'addressId': item.id }).then(res => { console.log(item)
getRepairRoomList({ 'addressId': item.key }).then(res => {
this.roomList = res.rows this.roomList = res.rows
}) })
this.address = item.name this.address = item.label
this.addressId = item.id this.addressId = item.key
}, },
selectFloorName (item) { selectFloorName (item) {
this.floor = item.name this.floor = item.label
this.floorId = item.id this.floorId = item.key
}, },
async handlePreview (file) { async handlePreview (file) {

View File

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

View File

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

View File

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

View File

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

View File

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