更新检测员工相关功能

This commit is contained in:
许允枞 2025-01-24 16:31:48 +08:00
parent b7bbb6bf8b
commit 0cb93eb0d2
2 changed files with 178 additions and 154 deletions

View File

@ -84,19 +84,19 @@
<div class="fv_box">
<div class="b-b">
<div>公示价格</div>
<div class="b_box">4090</div>
<div class="b_box">{{ data1.gsAmount || 0 }}</div>
</div>
<div class="b-b">
<div>应收</div>
<div class="b_box">4090</div>
<div class="b_box">{{ data1.ysAmount || 0 }}</div>
</div>
<div class="b-b">
<div>已收</div>
<div class="b_box">4090</div>
<div class="b_box">{{ data1.yjsAmount || 0 }}</div>
</div>
<div class="b-b">
<div>待收</div>
<div class="b_box">4090</div>
<div class="b_box">{{ data1.ysAmount - data1.yjsAmount || 0 }}</div>
</div>
</div>
@ -130,7 +130,7 @@
</div>
<div class="six_box">
<div class="s_title">
检测合格率
检测合格率(按车型)
</div>
<div class="dis-t">
@ -142,33 +142,33 @@
</div>
<div class="echaets_box" style="padding-top: 15px" >
<!-- gdt-->
<div class="jd_box">
<div class="jd_box" v-for="(item,index) in jchgl" :key="index">
<div class="jd_bt">
<div>重型货车</div>
<div>{{Progress1}}%</div>
<div>{{ item.name }}</div>
<div>{{ item.value }}%</div>
</div>
<div class="jd_k">
<div class="jd_v" :style=" 'width:' + Progress1+'%' " ></div>
</div>
</div>
<div class="jd_box">
<div class="jd_bt">
<div>3.5以上 轻型货车</div>
<div>{{Progress1}}%</div>
</div>
<div class="jd_k">
<div class="jd_v" :style=" 'width:' + Progress1+'%' " ></div>
</div>
</div>
<div class="jd_box">
<div class="jd_bt">
<div>3.5以下 轻型货车</div>
<div>{{Progress1}}%</div>
</div>
<div class="jd_k">
<div class="jd_v" :style=" 'width:' + Progress1+'%' " ></div>
<div class="jd_v" :style=" 'width:' + item.value+'%' " ></div>
</div>
</div>
<!-- <div class="jd_box">-->
<!-- <div class="jd_bt">-->
<!-- <div>3.5以上 轻型货车</div>-->
<!-- <div>{{Progress1}}%</div>-->
<!-- </div>-->
<!-- <div class="jd_k">-->
<!-- <div class="jd_v" :style=" 'width:' + Progress1+'%' " ></div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="jd_box">-->
<!-- <div class="jd_bt">-->
<!-- <div>3.5以下 轻型货车</div>-->
<!-- <div>{{Progress1}}%</div>-->
<!-- </div>-->
<!-- <div class="jd_k">-->
<!-- <div class="jd_v" :style=" 'width:' + Progress1+'%' " ></div>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
@ -179,11 +179,19 @@
<div class="echaets_box" style="display: flex;align-items: center;justify-content: space-around">
<div id="jcsptj" style="width: 170px; height: 170px;"></div>
<div>
<div class="hang_box">
<!-- <div class="hang_box" v-for="(item,index) in goodsList">-->
<!-- <div>-->
<!-- <div class="jt_"></div>-->
<!-- <div class="jt_size" style="color: #0174F6">{{ item.goodsName }}</div>-->
<!-- </div>-->
<!-- <div>{{ item.salesNum }}</div>-->
<!-- </div>-->
<div class="hang_box" >
<div>
<div class="jt_"></div>
<div class="jt_size" style="color: #0174F6">双燃料机油</div>
<div class="jt_" style="background: #40CC97"></div>
<div class="jt_size" style="color: #40CC97">双燃料机油</div>
</div>
<div>278</div>
</div>
<div class="hang_box" >
@ -216,10 +224,10 @@ import * as echarts from 'echarts';
import * as jcBigScreen from '@/views/inspection/screen/api/jcBigScreen';
import {
chartInfoNum,
chartLineInspectionAmount,
chartLineInspectionAmount, chartLineInspectionNum,
getfive1,
getfive2,
getfive3, hotGoodsList
getfive3, getServerData1, hotGoodsList
} from "@/views/inspection/screen/api/jcBigScreen";
export default {
@ -239,6 +247,7 @@ export default {
data1: '',
data3: '',
chartData1: {},
jchgl:[],
params: {
unit: this.unit,
},
@ -254,6 +263,8 @@ export default {
{text: '年', unit: 'year'},
],
jcList:[], //
goodsList:[],
}
},
created() {
@ -303,6 +314,11 @@ export default {
var chartDom = document.getElementById('yskje');
var myChart = echarts.init(chartDom);
const params = {
unit: this.unit,
};
const res = await jcBigScreen.getServerData1(params)
console.log('已收款金额', res)
let option = {
tooltip: {
@ -311,7 +327,7 @@ export default {
xAxis: {
type: 'category',
data: ['小型汽车', '中型汽车', '大型汽车'],
data: res.data.categories,
//
axisLine: {
lineStyle: {
@ -362,7 +378,7 @@ export default {
},
},
series: [{
data: [6,6,6],//this.PLAN_COUNT, this.ACTUAL_COUNT,this.GAP
data: res.data.series[0].data,//this.PLAN_COUNT, this.ACTUAL_COUNT,this.GAP
type: 'bar',
barWidth:40,
itemStyle: {
@ -414,6 +430,20 @@ export default {
* @returns {Promise<void>}
*/
async getProduct() {
let res = await hotGoodsList()
console.log('检测商品统计',res)
this.goodsList = res.data
//res.datagoodsNamesalesNum
let goodsName = []
let salesNum = []
for (let i = 0; i < res.data.length; i++) {
let name = {
value: res.data[i].salesNum,
name: res.data[i].goodsName
}
goodsName.push(name)
salesNum.push(res.data[i].salesNum)
}
var chartDom = document.getElementById('jcsptj');
var myChart = echarts.init(chartDom);
@ -455,11 +485,12 @@ export default {
labelLine: {
show: false
},
data: [
{ value: 1048, name: '单燃料机油' },
{ value: 735, name: '双燃料机油' },
{ value: 580, name: '三燃料机油' }
]
// [
// { value: 1000, name: '' },
// { value: 735, name: '' },
// { value: 580, name: '' }
// ]
data: goodsName
}
]
};
@ -471,6 +502,11 @@ export default {
* @returns {Promise<void>}
*/
async chartInfoNum() {
const params = {
unit: this.unit1,
}
let res = await jcBigScreen.chartInfoNum(params)
console.log('数量统计', res)
var chartDom = document.getElementById('sltj');
var myChart = echarts.init(chartDom);
@ -481,7 +517,7 @@ export default {
xAxis: {
type: 'category',
data: ['小型汽车', '中型汽车', '大型汽车'],
data: res.data.categories,
//
axisLine: {
lineStyle: {
@ -532,7 +568,7 @@ export default {
},
},
series: [{
data: [6,6,6],//this.PLAN_COUNT, this.ACTUAL_COUNT,this.GAP
data: res.data.series[0].data,//this.PLAN_COUNT, this.ACTUAL_COUNT,this.GAP
type: 'bar',
barWidth:40,
itemStyle: {
@ -589,31 +625,17 @@ export default {
}
let res = await jcBigScreen.chartInfoRatio(params)
console.log('检测合格率', res)
res.data.series.forEach(item => {
item.type = 'bar'
})
var chartDom = document.getElementById('jchgl');
var myChart = echarts.init(chartDom);
var option;
option = {
xAxis: {
type: 'category',
data: res.data.categories
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value}',
textStyle: {
color: '#fff', //
fontSize: 16, //
fontFamily: 'MicrosoftYaHei'
}
},
},
series: res.data.series
};
option && myChart.setOption(option);
let arrA = res.data.categories
let arrB = res.data.series
let values = []
for (let i = 0; i < arrA.length; i++) {
let a = {
value: arrB[0].data[i],
name: arrA[i]
}
values.push(a)
}
this.jchgl = values
},
/**
* 检测数量
@ -623,7 +645,8 @@ export default {
var chartDom = document.getElementById('jcsl');
var myChart = echarts.init(chartDom);
var option;
const res = await chartLineInspectionNum()
console.log('检测数量', res)
option = {
color: ['#0663f0', '#FFD78B'],
legend: {
@ -633,7 +656,7 @@ export default {
xAxis: {
type: 'category',
boundaryGap: false,
data: ['01', '02', '03', '04', '05', '06', '07'],
data: res.data.categories,
axisLine: {
lineStyle: {
color: '#fff'
@ -662,7 +685,7 @@ export default {
},
series: [
{
data: [820, 932, 901, 934, 1290, 1330, 1320],
data: res.data.series[0].data,
type: 'line',
symbolSize: 0,
smooth: true,
@ -675,7 +698,7 @@ export default {
}
},
{
data: [220, 182, 191, 234, 290, 330, 310],
data: res.data.series[1].data,
type: 'line',
symbolSize: 0,
smooth: true,
@ -690,6 +713,8 @@ export default {
]
};
option && myChart.setOption(option);
},
@ -697,6 +722,11 @@ export default {
* 客户来源分析饼图
*/
async customerSource() {
const params = {
unit: this.unit,
}
const res = await jcBigScreen.chartLineInspectionAmount(params);
console.log('成交金额', res.data)
var chartDom = document.getElementById('khly');
var myChart = echarts.init(chartDom);
var option;
@ -707,7 +737,7 @@ export default {
},
xAxis: {
type: 'category',
data: ['01', '02', '03', '04', '05', '06', '07'],
data: res.data.categories,
axisLine: {
lineStyle: {
color: '#fff'
@ -733,13 +763,12 @@ export default {
textStyle: {
color: '#fff',
fontSize: 16,
}
},
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130],
data: res.data.series[0].data,
type: 'line',
symbolSize: 10,

View File

@ -19,8 +19,8 @@
<el-col>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="员工名称" prop="username">
<el-input v-model="queryParams.nickname" placeholder="请输入员工名称" clearable style="width: 240px"
<el-form-item label="员工账号" prop="username">
<el-input v-model="queryParams.nickname" placeholder="请输入员工账号" clearable style="width: 240px"
@keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="手机号码" prop="mobile">
@ -33,12 +33,6 @@
:value="parseInt(dict.value)"/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
@ -66,7 +60,7 @@
<el-table v-loading="loading" :data="userList">
<el-table-column label="员工编号" align="center" key="id" prop="id" v-if="columns[0].visible"/>
<el-table-column label="员工名称" align="center" key="username" prop="username" v-if="columns[1].visible"
<el-table-column label="员工账号" align="center" key="username" prop="username" v-if="columns[1].visible"
:show-overflow-tooltip="true"/>
<el-table-column label="员工昵称" align="center" key="nickname" prop="nickname" v-if="columns[2].visible"
:show-overflow-tooltip="true"/>
@ -90,22 +84,9 @@
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:user:update']">修改
</el-button>
<el-dropdown @command="(command) => handleCommand(command, scope.$index, scope.row)"
v-hasPermi="['system:user:delete', 'system:user:update-password', 'system:permission:assign-user-role']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleDelete" v-if="scope.row.id !== 1" size="mini" type="text"
icon="el-icon-delete"
v-hasPermi="['system:user:delete']">删除
</el-dropdown-item>
<el-dropdown-item command="handleResetPwd" size="mini" type="text" icon="el-icon-key"
v-hasPermi="['system:user:update-password']">重置密码
</el-dropdown-item>
<el-dropdown-item command="handleRole" size="mini" type="text" icon="el-icon-circle-check"
v-hasPermi="['system:permission:assign-user-role']">分配角色
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:user:delete']">删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -120,14 +101,14 @@
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="用户昵称" prop="nickname">
<el-input v-model="form.nickname" placeholder="请输入用户昵称"/>
<el-form-item label="员工名称" prop="nickname">
<el-input v-model="form.nickname" placeholder="请输入员工名称"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :clearable="false"
placeholder="请选择归属部门" :normalizer="normalizer"/>
placeholder="请选择归属部门" />
</el-form-item>
</el-col>
</el-row>
@ -145,8 +126,8 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item v-if="form.id === undefined" label="用户名称" prop="username">
<el-input v-model="form.username" placeholder="请输入用户名称"/>
<el-form-item v-if="form.id === undefined" label="员工账号" prop="username">
<el-input v-model="form.username" placeholder="请输入员工账号"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -187,7 +168,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="入职时间" prop="joinDate">
<el-input v-model="form.joinDate" placeholder="请输入入职时间"/>
<el-date-picker v-model="form.joinDate" type="date" placeholder="请选择入职时间"
value-format="yyyy-MM-dd"/>
</el-form-item>
</el-col>
</el-row>
@ -226,18 +208,6 @@
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="岗位">-->
<!-- <el-select v-model="form.postIds" multiple placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in postOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.name"-->
<!-- :value="item.id"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row>
<el-col>
@ -247,9 +217,9 @@
</el-col>
</el-row>
<el-row>
<el-col >
<el-form-item label="社保购买日期" prop="joinDate">
<el-date-picker v-model="form.joinDate" type="date"></el-date-picker>
<el-col>
<el-form-item label="社保购买日期" prop="socialSecurityBuyDate">
<el-date-picker v-model="form.socialSecurityBuyDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择社保购买日期"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
@ -260,6 +230,24 @@
</el-form-item>
</el-col>
</el-row>
<!-- 导入附件-->
<el-row>
<el-upload
class="upload-demo"
:action="imageUpload.url"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:headers="imageUpload.headers"
:on-success="handleFileSuccessAttachments"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -291,32 +279,6 @@
</div>
</el-dialog>
<!-- 分配角色 -->
<el-dialog title="分配角色" :visible.sync="openRole" width="500px" append-to-body>
<el-form :model="form" label-width="80px">
<el-form-item label="用户名称">
<el-input v-model="form.username" :disabled="true"/>
</el-form-item>
<el-form-item label="用户昵称">
<el-input v-model="form.nickname" :disabled="true"/>
</el-form-item>
<el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择">
<el-option
v-for="item in roleOptions"
:key="parseInt(item.id)"
:label="item.name"
:value="parseInt(item.id)"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitRole"> </el-button>
<el-button @click="cancelRole"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -384,6 +346,8 @@ export default {
children: "children",
label: "name"
},
//
fileList: [],
//
driverLicenseTypeOptions:[],
//
@ -401,6 +365,19 @@ export default {
//
url: process.env.VUE_APP_BASE_API + '/admin-api/system/user/import'
},
//
imageUpload: {
//
open: false,
//
title: "",
//
isUploading: false,
//
headers: getBaseHeader(),
//
url: process.env.VUE_APP_BASE_API + '/admin-api/infra/file/uploadDetail'
},
//
queryParams: {
pageNo: 1,
@ -568,6 +545,7 @@ export default {
postIds: [],
roleIds: []
};
this.fileList = [];
this.resetForm("form");
},
/** 搜索按钮操作 */
@ -593,11 +571,11 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.getTreeselect();
// this.getTreeselect();
const id = row.id;
console.log(id)
getUser(id).then(response => {
this.form = response.data;
this.fileList = this.form.fileList == null ? [] : this.form.fileList;
this.open = true;
this.title = "修改用户";
});
@ -640,6 +618,7 @@ export default {
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.fileList = this.fileList
if (this.form.id !== undefined) {
this.form.userId = this.form.id;
console.log(this.form)
@ -741,15 +720,31 @@ export default {
//
submitFileForm() {
this.$refs.upload.submit();
console.log('执行')
},
//
normalizer(node) {
return {
id: node.id,
label: node.name,
children: node.children
handleRemove(file) {
console.log(file);
//fileList
this.fileList.splice(this.fileList.indexOf(file), 1);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${ file.name }`);
},
//
handleFileSuccessAttachments(response, file, fileList) {
if (response.code !== 0) {
this.$modal.msgError(response.msg)
return;
}
}
console.log(response)
this.fileList.push(response.data)
},
}
};
</script>