rev:界面优化和新增点位角度

This commit is contained in:
2023-12-14 14:23:50 +08:00
parent 053751c58f
commit d5f9fc472b
31 changed files with 1088 additions and 187 deletions

View File

@@ -0,0 +1,77 @@
package org.nl.acs.angle.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.angle.domain.AcsPointAngle;
import org.nl.acs.angle.service.IAcsPointAngleService;
import org.nl.common.logging.annotation.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* <p>
* 前端控制器
* </p>
*
* @author tq
* @since 2023-12-13
*/
@RestController
@Api(tags = "点位角度管理")
@RequestMapping("/api/acsPointAngle")
@Slf4j
public class AcsPointAngleController {
@Autowired
private IAcsPointAngleService acsPointAngleService;
@GetMapping
@Log("查询点位角度")
@ApiOperation("查询点位角度")
//@PreAuthorize("@el.check('acsPointAngle:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
return new ResponseEntity<>(acsPointAngleService.queryAll(whereJson, page), HttpStatus.OK);
}
@PostMapping
@Log("新增点位角度")
@ApiOperation("新增点位角度")
//@PreAuthorize("@el.check('acsPointAngle:add')")
public ResponseEntity<Object> create(@Validated @RequestBody AcsPointAngle dto) {
acsPointAngleService.create(dto);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改点位角度")
@ApiOperation("修改点位角度")
//@PreAuthorize("@el.check('acsPointAngle:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody AcsPointAngle dto) {
acsPointAngleService.update(dto);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除点位角度")
@ApiOperation("删除点位角度")
//@PreAuthorize("@el.check('acsPointAngle:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
acsPointAngleService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping("/updateActive")
@Log("是否启用")
@ApiOperation("是否启用")
public ResponseEntity<Object> updateOn(@RequestParam Long id, @RequestParam String is_active) {
acsPointAngleService.updateOn(id, is_active);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -0,0 +1,69 @@
package org.nl.acs.angle.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author tq
* @since 2023-12-13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("acs_point_angle")
@ApiModel(value="AcsPointAngle对象", description="")
public class AcsPointAngle implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id标识")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "起始点位编码")
private String start_point_code;
@ApiModelProperty(value = "起始设备编码")
private String start_device_code;
@ApiModelProperty(value = "目标点位编码")
private String next_point_code;
@ApiModelProperty(value = "目标设备编码")
private String next_device_code;
@ApiModelProperty(value = "起始点位角度")
private BigDecimal start_point_angle;
@ApiModelProperty(value = "目标点位角度")
private BigDecimal next_point_angle;
@ApiModelProperty(value = "是否启用")
private String is_active;
@ApiModelProperty(value = "创建者")
private String create_by;
@ApiModelProperty(value = "创建时间")
private String create_time;
@ApiModelProperty(value = "修改者")
private String update_by;
@ApiModelProperty(value = "修改时间")
private String update_time;
}

View File

@@ -0,0 +1,16 @@
package org.nl.acs.angle.mapper;
import org.nl.acs.angle.domain.AcsPointAngle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author tq
* @since 2023-12-13
*/
public interface AcsPointAngleMapper extends BaseMapper<AcsPointAngle> {
}

View File

@@ -0,0 +1,32 @@
package org.nl.acs.angle.service;
import org.nl.acs.angle.domain.AcsPointAngle;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.data.domain.Pageable;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author tq
* @since 2023-12-13
*/
public interface IAcsPointAngleService extends IService<AcsPointAngle> {
void create(AcsPointAngle dto);
/**
* 编辑
*
* @param dto /
*/
void update(AcsPointAngle dto);
void deleteAll(String[] ids);
Map<String, Object> queryAll(Map whereJson, Pageable page);
void updateOn(Long id, String is_active);
}

View File

@@ -0,0 +1,119 @@
package org.nl.acs.angle.service.impl;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import org.nl.acs.angle.domain.AcsPointAngle;
import org.nl.acs.angle.mapper.AcsPointAngleMapper;
import org.nl.acs.angle.service.IAcsPointAngleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.acs.device.domain.Device;
import org.nl.acs.utils.ConvertUtil;
import org.nl.acs.utils.PageUtil;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.language.LangProcess;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* <p>
* 服务实现类
* </p>
*
* @author tq
* @since 2023-12-13
*/
@Service
public class AcsPointAngleServiceImpl extends ServiceImpl<AcsPointAngleMapper, AcsPointAngle> implements IAcsPointAngleService {
@Autowired
private AcsPointAngleMapper acsPointAngleMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void create(AcsPointAngle dto) {
AcsPointAngle acsPointAngle = new AcsPointAngle();
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();
acsPointAngle.setId(dto.getId());
acsPointAngle.setStart_point_code(dto.getStart_point_code());
acsPointAngle.setStart_device_code(dto.getStart_device_code());
acsPointAngle.setNext_point_code(dto.getNext_point_code());
acsPointAngle.setNext_device_code(dto.getNext_device_code());
acsPointAngle.setStart_point_angle(dto.getStart_point_angle());
acsPointAngle.setNext_point_angle(dto.getNext_point_angle());
acsPointAngle.setIs_active(dto.getIs_active());
acsPointAngle.setCreate_by("auto");
acsPointAngle.setCreate_time(now);
acsPointAngle.setUpdate_by(currentUsername);
acsPointAngle.setUpdate_time(now);
acsPointAngleMapper.insert(acsPointAngle);
}
@Override
public void update(AcsPointAngle dto) {
if (dto == null) {
throw new BadRequestException(LangProcess.msg("error_nullPoint"));
}
AcsPointAngle acsPointAngle = new AcsPointAngle();
acsPointAngle.setId(dto.getId());
//起点角度,终点角度变化
acsPointAngle.setStart_point_angle(dto.getStart_point_angle());
acsPointAngle.setNext_point_angle(dto.getNext_point_angle());
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();
acsPointAngle.setUpdate_by(currentUsername);
acsPointAngle.setUpdate_time(now);
acsPointAngleMapper.updateById(acsPointAngle);
}
@Override
public void deleteAll(String[] ids) {
for (String id : ids) {
AcsPointAngle pointAngle = new LambdaQueryChainWrapper<>(acsPointAngleMapper)
.eq(AcsPointAngle::getId, id)
.one();
if (pointAngle == null) {
continue;
}
Map<String, Object> map = new HashMap<>();
map.put("id", id);
acsPointAngleMapper.deleteByMap(map);
}
}
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
IPage<AcsPointAngle> queryPage = PageUtil.toMybatisPage(page);
LambdaQueryWrapper<AcsPointAngle> wrapper = new LambdaQueryWrapper<>();
wrapper.orderByDesc(AcsPointAngle::getUpdate_time);
IPage<AcsPointAngle> pointAnglePage = acsPointAngleMapper.selectPage(queryPage, wrapper);
final JSONObject json = (JSONObject) JSON.toJSON(ConvertUtil.convertPage(pointAnglePage, AcsPointAngle.class));
return json;
}
@Override
public void updateOn(Long id, String is_active) {
AcsPointAngle acsPointAngle = new AcsPointAngle();
acsPointAngle.setId(id);
acsPointAngle.setIs_active(is_active);
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();
acsPointAngle.setUpdate_by(currentUsername);
acsPointAngle.setUpdate_time(now);
acsPointAngleMapper.updateById(acsPointAngle);
}
}

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.acs.angle.mapper.AcsPointAngleMapper">
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, start_point_code, start_device_code, next_point_code, next_device_code, start_point_angle, next_point_angle, is_active, create_by, create_time, update_by, update_time
</sql>
</mapper>

View File

@@ -0,0 +1,35 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/acsPointAngle',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/acsPointAngle/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/acsPointAngle',
method: 'put',
data
})
}
export function updateOn(id, is_active) {
console.log(is_active)
return request({
url: '/api/acsPointAngle/updateActive?id=' + id + '&is_active=' + is_active,
method: 'get'
})
}
export default { add, edit, del, updateOn }

View File

@@ -18,6 +18,9 @@ import timing from './timing/zh'
import config from './config/zh'
import user from './user/zh'
import deviceErrorInfo from './deviceErrorInfo/zh'
import role from './role/zh'
import department from './department/zh'
import dict from './dict/zh'
export default {
...zhLocale,
@@ -39,6 +42,9 @@ export default {
...timing,
...config,
...deviceErrorInfo,
...user
...user,
...role,
...department,
...dict
}

View File

@@ -0,0 +1,25 @@
export default {
'department': {
'table_title': {
'Department_name': 'Department Name',
'enter_department_name': 'Enter Department Name',
'Department': 'Department'
},
'table_value': {
'Sort': 'Sort',
'Name': 'Name',
'State': 'State',
'CreateDate': 'CreateDate',
'Operate': 'Operate'
},
'other': {
'Department_code': 'Department Code',
'Department_sort': 'Department Sort',
'External_identification': 'External Identification',
'Top_departments': 'Top Departments'
},
'msg': {
'delete_msg': 'Confirm That One Of The Selected Data Items Is Deleted?'
}
}
}

View File

@@ -0,0 +1,25 @@
export default {
'department': {
'table_title': {
'Department_name': 'Nama Departemen',
'enter_department_name': 'Silakan Masukkan Nama Departemen',
'Department': 'Departemen'
},
'table_value': {
'Sort': 'Jenis',
'Name': 'Nama',
'State': 'Negara',
'CreateDate': 'Tanggal Pembuatan',
'Operate': 'Beroperasi'
},
'other': {
'Department_code': 'Kode Departemen',
'Department_sort': 'Urutkan Berdasarkan Departemen',
'External_identification': 'Identifikasi Eksternal',
'Top_departments': 'Departemen Teratas'
},
'msg': {
'delete_msg': 'Mengonfirmasi Bahwa Salah Satu Item Data Yang Dipilih Dihapus?'
}
}
}

View File

@@ -0,0 +1,25 @@
export default {
'department': {
'table_title': {
'Department_name': '部门名称',
'enter_department_name': '请输入部门名称',
'Department': '部门'
},
'table_value': {
'Sort': '排序',
'Name': '名称',
'State': '状态',
'CreateDate': '创建日期',
'Operate': '操作'
},
'other': {
'Department_code': '部门编码',
'Department_sort': '部门排序',
'External_identification': '外部标识',
'Top_departments': '顶级部门'
},
'msg': {
'delete_msg': '确认删除选中的1条数据?'
}
}
}

View File

@@ -0,0 +1,28 @@
export default {
'dict': {
'table_title': {
'code_Name': 'Code(Name)',
'enter_code_name': 'Enter Name(Code)'
},
'table_value': {
'Code': 'Code',
'Name': 'Name',
'Operate': 'Operate',
'Dict': 'Dict'
},
'other': {
'Dict_detail': 'Dict Detail',
'Department_label': 'Department Label',
'Dictionary_value': 'Dictionary Value',
'Sort': 'Sort',
'Parameter1': 'Parameter1',
'Parameter2': 'Parameter2',
'Parameter3': 'Parameter3',
'Which_dictionary': 'Which Dictionary',
'Click_dictionary_see_details': 'Click On The Dictionary To See Details'
},
'msg': {
'delete_msg': 'Confirm That One Of The Selected Data Items Is Deleted?'
}
}
}

View File

@@ -0,0 +1,28 @@
export default {
'dict': {
'table_title': {
'code_Name': 'Nama (Kode)',
'enter_code_name': 'Masukkan Nama (Kode)'
},
'table_value': {
'Code': 'Pengkodean Kamus',
'Name': 'Nama',
'Operate': 'Beroperasi',
'Dict': 'Kamus'
},
'other': {
'Dict_detail': 'Detail Kamus',
'Department_label': 'Tag Kamus',
'Dictionary_value': 'Nilai Kamus',
'Sort': 'Jenis',
'Parameter1': 'Parameter 1',
'Parameter2': 'Parameter 2',
'Parameter3': 'Parameter 3',
'Which_dictionary': 'Kamus Yang Menjadi Miliknya',
'Click_dictionary_see_details': 'Klik Kamus Untuk Melihat Detailnya'
},
'msg': {
'delete_msg': 'Mengonfirmasi Bahwa Salah Satu Item Data Yang Dipilih Dihapus?'
}
}
}

View File

@@ -0,0 +1,28 @@
export default {
'dict': {
'table_title': {
'code_Name': '名称(编码)',
'enter_code_name': '输入名称(编码)'
},
'table_value': {
'Code': '字典编码',
'Name': '名称',
'Operate': '操作',
'Dict': '字典'
},
'other': {
'Dict_detail': '字典详情',
'Department_label': '字典标签',
'Dictionary_value': '字典值',
'Sort': '排序',
'Parameter1': '参数1',
'Parameter2': '参数2',
'Parameter3': '参数3',
'Which_dictionary': '所属字典',
'Click_dictionary_see_details': '点击字典查看详情'
},
'msg': {
'delete_msg': '确认删除选中的1条数据?'
}
}
}

View File

@@ -18,6 +18,9 @@ import config from './config/en'
import customPolicy from './customPolicy/en'
import deviceErrorInfo from './deviceErrorInfo/en'
import user from './user/en'
import role from './role/en'
import department from './department/en'
import dict from './dict/en'
export default {
...enLocale,
@@ -39,6 +42,9 @@ export default {
...timing,
...config,
...deviceErrorInfo,
...user
...user,
...role,
...department,
...dict
}

View File

@@ -18,6 +18,9 @@ import config from './config/in'
import customPolicy from './customPolicy/in'
import deviceErrorInfo from './deviceErrorInfo/in'
import user from './user/in'
import role from './role/in'
import department from './department/in'
import dict from './dict/in'
export default {
...idLocale,
@@ -40,5 +43,8 @@ export default {
...config,
...timing,
...deviceErrorInfo,
...user
...user,
...role,
...department,
...dict
}

View File

@@ -0,0 +1,23 @@
export default {
'role': {
'table_title': {
'taskCode_or_instCode': 'Task Number (Instruction Number)',
'input_taskCode_or_instCode': 'Input TaskCode Or InstCode'
},
'table_value': {
'roleList': 'List Of Roles',
'Name': 'Name',
'Description': 'Description',
'CreateDate': 'CreateDate',
'Operate': 'Operate',
'Role': 'Role'
},
'other': {
'Menu_assignments': 'Menu Assignments',
'Save': 'Save'
},
'msg': {
'delete_msg': 'Confirm That One Of The Selected Data Items Is Deleted?'
}
}
}

View File

@@ -0,0 +1,23 @@
export default {
'role': {
'table_title': {
'taskCode_or_instCode': 'Nomor Tugas (Nomor Instruksi)',
'input_taskCode_or_instCode': 'Masukkan Nomor Tugas Atau Nomor Instruksi'
},
'table_value': {
'roleList': 'Daftar Peran',
'Name': 'Nama',
'Description': 'Deskripsi',
'CreateDate': 'Tanggal Pembuatan',
'Operate': 'Beroperasi',
'Role': 'Peranan'
},
'other': {
'Menu_assignments': 'Penetapan Menu',
'Save': 'Simpan'
},
'msg': {
'delete_msg': 'Mengonfirmasi Bahwa Salah Satu Item Data Yang Dipilih Dihapus?'
}
}
}

View File

@@ -0,0 +1,23 @@
export default {
'role': {
'table_title': {
'taskCode_or_instCode': '任务号(指令号)',
'input_taskCode_or_instCode': '输入任务号或指令号'
},
'table_value': {
'roleList': '角色列表',
'Name': '角色名称',
'Description': '描述',
'CreateDate': '创建日期',
'Operate': '操作',
'Role': '角色'
},
'other': {
'Menu_assignments': '菜单分配',
'Save': '保存'
},
'msg': {
'delete_msg': '确认删除选中的1条数据?'
}
}
}

View File

@@ -5,7 +5,9 @@ export default {
'enter_department_name': 'Enter Department Name',
'Account_Number (Name)': 'Account_Number (Name)',
'Enter_Account_Number (Name)': 'Enter_Account_Number (Name)',
'State': 'State'
'State': 'State',
'Search': 'Search',
'System': 'System'
},
'table_value': {
'Username': 'Username',
@@ -16,7 +18,14 @@ export default {
'Department': 'Department',
'State': 'State',
'create_Date': 'Create Date',
'Operate': 'Operate'
'Operate': 'Operate',
'Password': 'Password',
'boy': 'Boy',
'girl': 'Girl',
'Select_Sector_Categories': 'Select Sector Categories',
'User': 'User',
'activation': 'Activation',
'lock': 'Lock'
},
'other': {
'Revise': 'Revise',

View File

@@ -1,22 +1,31 @@
export default {
'user': {
'table_title': {
'Department_name': '部门名称',
'enter_department_name': '请输入部门名称',
'Account_Number (Name)': '账号(名称)',
'Enter_Account_Number (Name)': '请输入账号或者名称',
'State': '状态'
'Department_name': 'Nama Departemen',
'enter_department_name': 'Silakan Masukkan Nama Departemen',
'Account_Number (Name)': 'Nomor Rekening (Nama)',
'Enter_Account_Number (Name)': 'Silakan Masukkan Nomor Akun Atau Nama',
'State': 'Negara',
'Search': 'Mencari',
'System': 'Sistem'
},
'table_value': {
'Username': '用户名',
'Name': '姓名',
'Sex': '性别',
'Phone': '电话',
'Mailbox': '邮箱',
'Department': '部门',
'State': '状态',
'create_Date': '创建日期',
'Operate': '操作'
'Username': 'Nama Pengguna',
'Name': 'Nama',
'Sex': 'Jenis Kelamin',
'Phone': 'Ponsel',
'Mailbox': 'Kotak Surat',
'Department': 'Departemen',
'State': 'Negara',
'create_Date': 'Tanggal Pembuatan',
'Operate': 'Beroperasi',
'Password': 'Kata Sandi',
'boy': 'Laki',
'girl': 'Wanita',
'Select_Sector_Categories': 'Pilih Kategori Departemen',
'User': 'Pengguna',
'activation': 'Pengaktifan',
'lock': 'Kunci'
},
'other': {
'Revise': 'Merevisi',

View File

@@ -5,7 +5,9 @@ export default {
'enter_department_name': '请输入部门名称',
'Account_Number (Name)': '账号(名称)',
'Enter_Account_Number (Name)': '请输入账号或者名称',
'State': '状态'
'State': '状态',
'Search': '搜索',
'System': '所属系统'
},
'table_value': {
'Username': '用户名',
@@ -16,7 +18,14 @@ export default {
'Department': '部门',
'State': '状态',
'create_Date': '创建日期',
'Operate': '操作'
'Operate': '操作',
'Password': '密码',
'boy': '男',
'girl': '女',
'Select_Sector_Categories': '选择部门类目',
'User': '用户',
'activation': '激活',
'lock': '锁定'
},
'other': {
'Revise': '修改',
@@ -25,7 +34,7 @@ export default {
'Reset': '重置密码',
'Department_permissions': '部门权限',
'Data_Permissions': '数据权限',
'Lock_account': '锁定账号',
'Lock_account': '账号',
'Assign_roles': '分配角色'
},
'msg': {

View File

@@ -0,0 +1,231 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog
:close-on-click-modal="false"
:before-close="crud.cancelCU"
:visible.sync="crud.status.cu > 0"
:title="crud.status.title"
width="500px"
>
<el-form
ref="form"
:model="form"
:rules="rules"
size="small"
label-width="80px"
>
<el-form-item
v-if="false"
label="id标识"
>
<el-input v-model="form.id" style="width: 370px;" />
</el-form-item>
<el-form-item
label="起始点位编码"
>
<el-input v-model="form.start_point_code" style="width: 370px;" />
</el-form-item>
<el-form-item
label="起始设备编码"
>
<el-input v-model="form.start_device_code" style="width: 370px;" />
</el-form-item>
<el-form-item
label="目标点位编码"
>
<el-input v-model="form.next_point_code" style="width: 370px;" />
</el-form-item>
<el-form-item
label="目标设备编码"
>
<el-input v-model="form.next_device_code" style="width: 370px;" />
</el-form-item>
<el-form-item
label="起始点位角度"
>
<el-input v-model="form.start_point_angle" style="width: 370px;" />
</el-form-item>
<el-form-item
label="目标点位角度"
>
<el-input v-model="form.next_point_angle" style="width: 370px;" />
</el-form-item>
<el-form-item
label="是否启用"
prop="is_active"
>
<el-input v-model="form.is_active" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table
ref="table"
v-loading="crud.loading"
:data="crud.data"
size="small"
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55" />
<el-table-column
v-if="false"
prop="id"
label="id标识"
/>
<el-table-column
prop="start_point_code"
label="起始点位编码"
/>
<el-table-column
prop="start_device_code"
label="起始设备编码"
/>
<el-table-column
prop="next_point_code"
label="目标点位编码"
/>
<el-table-column
prop="next_device_code"
label="目标设备编码"
/>
<el-table-column
prop="start_point_angle"
label="起始点位角度"
/>
<el-table-column
prop="next_point_angle"
label="目标点位角度"
/>
<el-table-column
prop="is_active"
label="是否启用"
>
<template slot-scope="scope">
<el-switch
v-model="scope.row.is_active"
active-color="#13ce66"
inactive-color="#ff4949"
:active-value="1"
:inactive-value="0"
@change="updateIsOn(scope.row.id,scope.row.is_active)"
/>
</template>
</el-table-column>
<el-table-column
prop="create_by"
label="创建者"
/>
<el-table-column
prop="create_time"
label="创建时间"
/>
<el-table-column
prop="update_by"
label="修改者"
/>
<el-table-column
prop="update_time"
label="修改时间"
/>
<el-table-column
v-permission="['admin','acsPointAngle:edit','acsPointAngle:del']"
label="操作"
width="150px"
align="center"
>
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import CRUD, { crud, form, header, presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import crudAcsPointAngle from '@/api/acs/angle/acsPointAngle'
const defaultForm = {
id: null,
start_point_code: null,
start_device_code: null,
next_point_code: null,
next_device_code: null,
start_point_angle: null,
next_point_angle: null,
is_active: null,
create_by: null,
create_time: null,
update_by: null,
update_time: null
}
export default {
name: 'AcsPointAngle',
components: { pagination, crudOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '点位角度',
url: 'api/acsPointAngle',
idField: 'id',
sort: 'id,desc',
crudMethod: { ...crudAcsPointAngle }
})
},
data() {
return {
permission: {
add: ['admin', 'acsPointAngle:add'],
edit: ['admin', 'acsPointAngle:edit'],
del: ['admin', 'acsPointAngle:del']
},
rules: {
is_active: [
{
required: true,
message: '是否启用不能为空',
trigger: 'blur'
}
]
}
}
},
methods: {
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
},
updateIsOn(id, is_active) {
crudAcsPointAngle.updateOn(id, is_active).then(res => {
this.notify('保存成功', 'success')
}).catch(err => {
console.log(err.response.data.message)
})
}
}
}
</script>
<style scoped>
</style>

View File

@@ -1,9 +1,9 @@
<template>
<div class="login" :style="'background-image:url('+ Background +');'">
<div style="font-size: 42px; color: #f4f4f5; text-align: center; background-color: transparent;padding-top: 20px;">兰州海亮设备管理任务看板</div>
<div style="font-size: 42px; color: #f4f4f5; text-align: center; background-color: transparent;padding-top: 20px;">{{ $t('task.screen.title') }}</div>
<el-row>
<el-col :span="12">
<di><h2 style="font-size: 50px; color: #f4f4f5;margin-left: 30px;padding-top: 10px;">任务看板</h2></di>
<di><h2 style="font-size: 50px; color: #f4f4f5;margin-left: 30px;padding-top: 10px;">{{ $t('task.screen.task_screen') }}</h2></di>
<el-form
:inline="true"
label-position="right"

View File

@@ -4,27 +4,38 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<el-input
v-model="query.name"
clearable
size="mini"
placeholder="输入部门名称搜索"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.is_used"
clearable
size="mini"
placeholder="状态"
class="filter-item"
style="width: 90px"
@change="crud.toQuery"
<el-form
:inline="true"
class="demo-form-inline"
label-position="right"
label-suffix=":"
>
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" />
</el-select>
<rrOperation />
<el-form-item :label="$t('department.table_title.Department_name')">
<el-input
v-model="query.name"
clearable
size="mini"
:placeholder="$t('department.table_title.enter_department_name')"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item :label="$t('department.table_value.State')">
<el-select
v-model="query.is_used"
clearable
size="mini"
:placeholder="$t('department.table_value.State')"
class="filter-item"
style="width: 200px"
@change="crud.toQuery"
>
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" />
</el-select>
</el-form-item>
<rrOperation />
</el-form>
</div>
<crudOperation :permission="permission" />
</div>
@@ -34,16 +45,16 @@
:before-close="crud.cancelCU"
:visible.sync="crud.status.cu > 0"
:title="crud.status.title"
width="500px"
width="650px"
>
<el-form ref="form" inline :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="部门编码" prop="code">
<el-form ref="form" inline :model="form" :rules="rules" size="mini" label-width="160px">
<el-form-item :label="$t('department.other.Department_code')" prop="code" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
<el-input v-model="form.code" :disabled="true" style="width: 370px;" />
</el-form-item>
<el-form-item label="部门名称" prop="name">
<el-form-item :label="$t('department.table_title.Department_name')" prop="name" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
<el-input v-model="form.name" style="width: 370px;" />
</el-form-item>
<el-form-item label="部门排序" prop="dept_sort">
<el-form-item :label="$t('department.other.Department_sort')" prop="dept_sort" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
<el-input-number
v-model.number="form.dept_sort"
:min="0"
@@ -52,16 +63,18 @@
style="width: 370px;"
/>
</el-form-item>
<el-form-item label="外部标识" prop="ext_id">
<el-form-item :label="$t('department.other.External_identification')" prop="ext_id" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
<el-input v-model="form.ext_id" style="width: 370px;" />
</el-form-item>
<el-form-item label="顶级部门">
<el-form-item :label="$t('department.other.Top_departments')" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
<el-radio-group v-model="form.isTop" style="width: 140px">
<el-radio label="1">是</el-radio>
<el-radio label="0"></el-radio>
<el-row>
<el-radio label="1">{{ $t('common.true') }}</el-radio>
<el-radio label="0">{{ $t('common.false') }}</el-radio>
</el-row>
</el-radio-group>
</el-form-item>
<el-form-item label="状态" prop="is_used">
<el-form-item :label="$t('department.table_value.State')" prop="is_used" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
<el-switch
v-model="form.is_used"
active-color="#409EFF"
@@ -70,7 +83,7 @@
inactive-valu="false"
/>
</el-form-item>
<el-form-item v-if="form.isTop === '0'" style="margin-bottom: 0;" label="上级部门" prop="pid">
<el-form-item v-if="form.isTop === '0'" style="margin-bottom: 0;" :label="$t('department.other.Top_departments')" prop="pid" :min-width="flexWidth('code',crud.data,$t('department.other.Department_code'))">
<treeselect
v-model="form.pid"
:load-options="loadDepts"
@@ -82,8 +95,8 @@
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
<el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
</div>
</el-dialog>
<!--表格渲染 :load="getDeptDatas" 点击事件 row-key需要指定唯一的数据id-->
@@ -101,9 +114,9 @@
>
<el-table-column :selectable="checkboxT" type="selection" width="55" />
<!-- <el-table-column label="编码" prop="code" />-->
<el-table-column label="名称" prop="name" />
<el-table-column label="排序" prop="dept_sort" />
<el-table-column label="状态" align="center" prop="is_used">
<el-table-column :label="$t('department.table_value.Name')" prop="name" :min-width="flexWidth('name',crud.data,$t('department.table_value.Name'))" />
<el-table-column :label="$t('department.table_value.Sort')" prop="dept_sort" :min-width="flexWidth('dept_sort',crud.data,$t('department.table_value.Sort'))" />
<el-table-column :label="$t('department.table_value.State')" align="center" prop="is_used" :min-width="flexWidth('is_used',crud.data,$t('department.table_value.State'))">
<template slot-scope="scope">
<el-switch
v-model="scope.row.is_used"
@@ -114,10 +127,10 @@
/>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建日期" />
<el-table-column prop="create_time" :label="$t('department.table_value.CreateDate')" :min-width="flexWidth('create_time',crud.data,$t('department.table_value.CreateDate'))" />
<el-table-column
v-permission="['admin','dept:edit','dept:del']"
label="操作"
:label="$t('department.table_value.Operate')"
width="130px"
align="center"
fixed="right"
@@ -143,6 +156,7 @@ import CRUD, { crud, form, header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import i18n from '@/i18n'
const defaultForm = {
code: null,
@@ -158,7 +172,7 @@ export default {
name: 'Dept',
components: { Treeselect, crudOperation, rrOperation, udOperation },
cruds() {
return CRUD({ title: '部门', idField: 'dept_id', url: 'api/dept/vo', crudMethod: { ...crudDept }})
return CRUD({ title: i18n.t('department.table_title.Department'), idField: 'dept_id', url: 'api/dept/vo', crudMethod: { ...crudDept }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
// 设置数据字典

View File

@@ -1,7 +1,7 @@
<template>
<div>
<div v-if="query.code === ''">
<div class="my-code">点击字典查看详情</div>
<div class="my-code">{{ $t('dict.other.Click_dictionary_see_details') }}</div>
</div>
<div v-else>
<!--工具栏-->
@@ -27,16 +27,16 @@
:before-close="crud.cancelCU"
:visible="crud.status.cu > 0"
:title="crud.status.title"
width="500px"
width="600px"
>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="字典标签" prop="label">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="150px">
<el-form-item :label="$t('dict.other.Dict_detail')" prop="label">
<el-input v-model="form.label" style="width: 370px;" />
</el-form-item>
<el-form-item label="字典值" prop="value">
<el-form-item :label="$t('dict.other.Dictionary_value')" prop="value">
<el-input v-model="form.value" style="width: 370px;" />
</el-form-item>
<el-form-item label="排序" prop="dict_sort">
<el-form-item :label="$t('dict.other.Sort')" prop="dict_sort">
<el-input-number
v-model.number="form.dict_sort"
:min="0"
@@ -45,19 +45,19 @@
style="width: 370px;"
/>
</el-form-item>
<el-form-item label="参数1" prop="para1">
<el-form-item :label="$t('dict.other.Parameter1')" prop="para1">
<el-input v-model="form.para1" style="width: 370px;" />
</el-form-item>
<el-form-item label="参数2" prop="para2">
<el-form-item :label="$t('dict.other.Parameter2')" prop="para2">
<el-input v-model="form.para2" style="width: 370px;" />
</el-form-item>
<el-form-item label="参数3" prop="para3">
<el-form-item :label="$t('dict.other.Parameter3')" prop="para3">
<el-input v-model="form.para3" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
<el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
</div>
</el-dialog>
<!--表格渲染-->
@@ -69,18 +69,18 @@
style="width: 100%;"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column label="所属字典" min-width="150" show-overflow-tooltip>
<el-table-column prop="code" :label="$t('dict.other.Which_dictionary')" :min-width="flexWidth('code',crud.data,$t('dict.other.Which_dictionary'))" show-overflow-tooltip>
{{ query.code }}
</el-table-column>
<el-table-column prop="label" label="字典标签" align="center" width="120" show-overflow-tooltip />
<el-table-column prop="value" label="字典值" align="center" width="60" />
<el-table-column prop="dict_sort" label="排序" align="center" width="65" />
<el-table-column prop="para1" label="参数1" align="center" width="65" />
<el-table-column prop="para2" label="参数2" align="center" width="65" />
<el-table-column prop="para3" label="参数3" align="center" width="65" />
<el-table-column prop="label" :label="$t('dict.other.Department_label')" align="center" :min-width="flexWidth('label',crud.data,$t('dict.other.Department_label'))" show-overflow-tooltip />
<el-table-column prop="value" :label="$t('dict.other.Dictionary_value')" align="center" :min-width="flexWidth('value',crud.data,$t('dict.other.Dictionary_value'))" />
<el-table-column prop="dict_sort" :label="$t('dict.other.Sort')" align="center" min-width="120px" />
<el-table-column prop="para1" :label="$t('dict.other.Parameter1')" align="center" :min-width="flexWidth('para1',crud.data,$t('dict.other.Parameter1'))" />
<el-table-column prop="para2" :label="$t('dict.other.Parameter2')" align="center" :min-width="flexWidth('para2',crud.data,$t('dict.other.Parameter2'))" />
<el-table-column prop="para3" :label="$t('dict.other.Parameter3')" align="center" :min-width="flexWidth('para3',crud.data,$t('dict.other.Parameter3'))" />
<el-table-column
v-permission="['admin','dict:edit','dict:del']"
label="操作"
:label="$t('dict.table_value.Operate')"
align="center"
width="115px"
fixed="right"
@@ -105,6 +105,7 @@ import CRUD, { form, header, presenter } from '@crud/crud'
import pagination from '@crud/Pagination'
import rrOperation from '@crud/RR.operation'
import udOperation from '@crud/UD.operation'
import i18n from '@/i18n'
const defaultForm = { dict_id: null, name: null, label: null, value: null, dict_sort: null, dictType: null, para1: null, para2: null, para3: null, createId: null, createName: null, createTime: null, updateId: null, updateName: null, updateTime: null }
@@ -113,7 +114,7 @@ export default {
cruds() {
return [
CRUD({
title: '字典详情',
title: i18n.t('dict.other.Dict_detail'),
url: 'api/dict/dictDetail',
query: { code: '' },
idField: 'dict_id',

View File

@@ -7,19 +7,19 @@
:before-close="crud.cancelCU"
:visible="crud.status.cu > 0"
:title="crud.status.title"
width="500px"
width="650px"
>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="字典编码" prop="code">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="170px">
<el-form-item :label="$t('dict.table_value.Code')" prop="code">
<el-input v-model="form.code" style="width: 370px;" />
</el-form-item>
<el-form-item label="名称">
<el-form-item :label="$t('dict.table_value.Name')">
<el-input v-model="form.name" style="width: 370px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
<el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
</div>
</el-dialog>
<!-- 字典列表 -->
@@ -30,16 +30,25 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<el-input
v-model="query.blurry"
clearable
size="mini"
placeholder="输入名称或者描述搜索"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<rrOperation />
<el-form
:inline="true"
class="demo-form-inline"
label-position="right"
label-suffix=":"
>
<el-form-item :label="$t('dict.table_title.code_Name')">
<el-input
v-model="query.blurry"
clearable
size="mini"
:placeholder="$t('dict.table_title.enter_code_name')"
style="width: 200px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<rrOperation />
</el-form>
</div>
<crudOperation :permission="permission" />
</div>
@@ -54,11 +63,11 @@
@current-change="handleCurrentChange"
>
<el-table-column type="selection" width="55" />
<el-table-column show-overflow-tooltip prop="code" label="编码" />
<el-table-column show-overflow-tooltip prop="name" label="名称" />
<el-table-column show-overflow-tooltip prop="code" :label="$t('dict.table_value.Code')" />
<el-table-column show-overflow-tooltip prop="name" :label="$t('dict.table_value.Name')" />
<el-table-column
v-permission="['admin','dict:edit','dict:del']"
label="操作"
:label="$t('dict.table_value.Operate')"
width="130px"
align="center"
fixed="right"
@@ -79,7 +88,7 @@
<el-col :xs="11" :sm="11" :md="11" :lg="11" :xl="11">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>字典详情</span>
<span>{{ $t('dict.other.Dict_detail') }}</span>
<el-button
v-if="checkPermission(['admin','dict:add']) && this.$refs.dictDetail && this.$refs.dictDetail.query.code"
class="filter-item"
@@ -88,7 +97,7 @@
type="primary"
icon="el-icon-plus"
@click="$refs.dictDetail && $refs.dictDetail.crud.toAdd()"
>新增
>{{ $t('common.Create') }}
</el-button>
</div>
<dictDetail ref="dictDetail" :permission="permission" />
@@ -108,6 +117,7 @@ import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import rrOperation from '@crud/RR.operation'
import udOperation from '@crud/UD.operation'
import i18n from '@/i18n'
const defaultForm = {
dict_id: null,
@@ -127,7 +137,7 @@ export default {
components: { crudOperation, pagination, rrOperation, udOperation, dictDetail },
cruds() {
return [
CRUD({ title: '字典', url: 'api/dict', idField: 'dict_id', crudMethod: { ...crudDict }})
CRUD({ title: i18n.t('dict.table_value.Dict'), url: 'api/dict', idField: 'dict_id', crudMethod: { ...crudDict }})
]
},
mixins: [presenter(), header(), form(defaultForm)],

View File

@@ -4,28 +4,35 @@
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<el-input
v-model="query.blurry"
clearable
size="mini"
:placeholder="$t('menu.placeholder.fuzzy_search')"
style="width: 200px;margin-bottom: 10px"
class="filter-item"
@keyup.enter.native="queryBlurry"
/>
<el-select
v-model="query.system_type"
style="width: 100px; height: 35px;top: -5px;"
:placeholder="$t('menu.placeholder.owning_system')"
@change="changetype"
<el-form
:inline="true"
class="demo-form-inline"
label-position="right"
label-suffix=":"
>
<el-option
v-for="item in dict.system_type"
:label="item.label"
:value="item.value"
/>
</el-select>
<rrOperation />
<el-form-item :label="$t('menu.placeholder.fuzzy_search')">
<el-input
v-model="query.blurry"
clearable
size="mini"
:placeholder="$t('menu.placeholder.fuzzy_search')"
style="width: 200px;margin-bottom: 10px"
class="filter-item"
@keyup.enter.native="queryBlurry"
/>
</el-form-item>
<el-form-item :label="$t('menu.placeholder.owning_system')">
<el-select
v-model="query.system_type"
style="width: 200px; margin-bottom: 10px"
:placeholder="$t('menu.placeholder.owning_system')"
@change="changetype"
>
<el-option v-for="item in dict.system_type" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
<rrOperation />
</el-form>
</div>
<crudOperation :permission="permission" />
</div>
@@ -38,7 +45,7 @@
:title="crud.status.title"
width="650px"
>
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="150px">
<el-form-item :label="$t('menu.dialog.menu_type')" prop="type">
<el-radio-group v-model="form.type" size="mini">
<el-radio-button label="1">{{ $t('menu.dialog.system') }}</el-radio-button>
@@ -69,20 +76,20 @@
</el-form-item>
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1'" :label="$t('menu.dialog.menu_chain')" prop="iframe">
<el-radio-group v-model="form.iframe" size="mini">
<el-radio-button label="true"></el-radio-button>
<el-radio-button label="false"></el-radio-button>
<el-radio-button label="true">{{ $t('common.true') }}</el-radio-button>
<el-radio-button label="false">{{ $t('common.false') }}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item v-show="form.type.toString() === '2'" :label="$t('menu.dialog.menu_cache')" prop="cache">
<el-radio-group v-model="form.cache" size="mini">
<el-radio-button label="true"></el-radio-button>
<el-radio-button label="false"></el-radio-button>
<el-radio-button label="true">{{ $t('common.true') }}</el-radio-button>
<el-radio-button label="false">{{ $t('common.false') }}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1' " :label="$t('menu.dialog.menu_visible')" prop="hidden">
<el-radio-group v-model="form.hidden" size="mini">
<el-radio-button label="false"></el-radio-button>
<el-radio-button label="true"></el-radio-button>
<el-radio-button label="false">{{ $t('common.true') }}</el-radio-button>
<el-radio-button label="true">{{ $t('common.false') }}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.type.toString() !== '2'" :label="$t('menu.dialog.default_title')" prop="title">

View File

@@ -10,7 +10,7 @@
label-position="right"
label-suffix=":"
>
<el-form-item :label="$t('task.txt_box.Task_code')">
<el-form-item :label="$t('role.table_title.taskCode_or_instCode')">
<el-input
v-model="query.blurry"
size="mini"
@@ -36,16 +36,16 @@
width="520px"
>
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="80px">
<el-form-item label="角色名称" prop="name">
<el-form-item :label="$t('role.table_value.Name')" prop="name">
<el-input v-model="form.name" style="width: 380px;" />
</el-form-item>
<el-form-item label="备注" prop="description">
<el-form-item :label="$t('role.table_value.Name')" prop="description">
<el-input v-model="form.remark" style="width: 380px;" rows="2" type="textarea" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
<el-button type="text" @click="crud.cancelCU">{{ $t('task.select.Cancel') }}</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('task.select.Confirm') }}</el-button>
</div>
</el-dialog>
<el-row :gutter="15">
@@ -53,7 +53,7 @@
<el-col :span="12" style="margin-bottom: 10px">
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span class="role-span">角色列表</span>
<span class="role-span">{{ $t('role.table_value.roleList') }}</span>
</div>
<el-table
ref="table"
@@ -65,16 +65,16 @@
@current-change="handleCurrentChange"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="name" label="名称" min-width="100" show-overflow-tooltip />
<el-table-column show-overflow-tooltip prop="remark" label="描述" />
<el-table-column show-overflow-tooltip width="135px" prop="create_time" label="创建日期">
<el-table-column prop="name" :label="$t('role.table_value.Name')" :min-width="flexWidth('name',crud.data,$t('role.table_value.Name'))" show-overflow-tooltip />
<el-table-column show-overflow-tooltip prop="remark" :label="$t('role.table_value.Description')" :min-width="flexWidth('remark',crud.data,$t('role.table_value.Description'))" />
<el-table-column show-overflow-tooltip :min-width="flexWidth('create_time',crud.data,$t('role.table_value.CreateDate'))" prop="create_time" :label="$t('role.table_value.CreateDate')">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.create_time) }}</span>
</template>
</el-table-column>
<el-table-column
v-permission="['admin','roles:edit','roles:del']"
label="操作"
:label="$t('role.table_value.Operate')"
width="130px"
align="center"
fixed="right"
@@ -96,7 +96,7 @@
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<el-tooltip class="item" effect="dark" content="选择指定角色分配菜单" placement="top">
<span class="role-span">菜单分配</span>
<span class="role-span">{{ $t('role.other.Menu_assignments') }}</span>
</el-tooltip>
<el-button
v-permission="['admin','roles:edit']"
@@ -107,7 +107,7 @@
style="float: right; padding: 6px 10px"
type="primary"
@click="saveMenu"
>保存
>{{ $t('role.other.Save') }}
</el-button>
</div>
@@ -139,18 +139,19 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import i18n from '@/i18n'
const defaultForm = { role_id: null, name: null, remark: null }
export default {
name: 'Role',
components: { pagination, crudOperation, rrOperation, udOperation, crudMenu },
cruds() {
return CRUD({ idField: 'role_id', title: '角色', url: 'api/sysRole', crudMethod: { ...crudRoles }})
return CRUD({ idField: 'role_id', title: i18n.t('role.table_value.Role'), url: 'api/sysRole', crudMethod: { ...crudRoles }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() {
return {
defaultProps: { children: 'children', label: 'title', isLeaf: 'leaf' },
defaultProps: { children: 'children', label: this.$langPre.computedProp('title'), isLeaf: 'leaf' },
currentId: 0, menuLoading: false, showButton: false,
menus: [], menuIds: [], // 多选时使用
permission: {
@@ -221,6 +222,8 @@ export default {
this.showButton = true
}
},
menuChange(menu) {
// 获取该节点的所有子节点id 包含自身
getChild(menu.menu_id).then(childIds => {

View File

@@ -148,6 +148,7 @@
v-permission="['admin','timing:edit']"
size="mini"
style="margin-right: 3px;"
icon="el-icon-edit"
type="text"
@click="crud.toEdit(scope.row)"
>{{ $t('Timing.DB.edit') }}
@@ -156,6 +157,7 @@
v-permission="['admin','timing:edit']"
style="margin-left: -2px"
type="text"
icon="el-icon-video-pause"
size="mini"
@click="execute(scope.row.job_id)"
>{{ $t('Timing.DB.execute') }}
@@ -164,6 +166,7 @@
v-permission="['admin','timing:edit']"
style="margin-left: 3px"
type="text"
icon="el-icon-video-play"
size="mini"
@click="updateStatus(scope.row.job_id,scope.row.is_pause ? $t('Timing.DB.restore') : $t('Timing.DB.suspend'))"
>
@@ -177,11 +180,11 @@
>
{{ $t('Timing.msg.delete_msg') }}
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="$refs[scope.row.job_id].doClose()">{{ $t('common.Cancel') }}</el-button>
<el-button size="mini" type="text" @click="$refs[scope.row.job_id].doClose()">{{ $t('common.Cancel') }}</el-button>
<el-button :loading="delLoading" type="primary" size="mini" @click="delMethod(scope.row.job_id)">{{ $t('common.determine') }}
</el-button>
</div>
<el-button slot="reference" type="text" size="mini">{{ $t('common.Cancel') }}</el-button>
<el-button slot="reference" icon="el-icon-circle-close" type="text" size="mini">{{ $t('common.Cancel') }}</el-button>
</el-popover>
</template>
</el-table-column>

View File

@@ -59,7 +59,7 @@
size="mini"
:placeholder="$t('user.table_title.State')"
class="filter-item"
style="width: 90px"
style="width: 200px"
@change="crud.toQuery"
>
<el-option
@@ -82,45 +82,45 @@
:before-close="crud.cancelCU"
:visible.sync="crud.status.cu > 0"
:title="crud.status.title"
width="700px"
width="800px"
>
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form-item label="用户名" prop="username">
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="150px">
<el-form-item :label="$t('user.table_value.Username')" prop="username">
<el-input v-model="form.username" style="width: 200px;" />
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-form-item :label="$t('user.table_value.Phone')" prop="phone">
<el-input v-model.number="form.phone" style="width: 200px;" />
</el-form-item>
<el-form-item label="姓名" prop="preson_name">
<el-form-item :label="$t('user.table_value.Name')" prop="preson_name">
<el-input v-model="form.person_name" style="width: 200px;" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-form-item :label="$t('user.table_value.Mailbox')" prop="email">
<el-input v-model="form.email" style="width: 200px;" />
</el-form-item>
<br v-if="!crud.status.edit">
<el-form-item v-if="crud.status.add" label="部门" prop="depts" :rules="[{ required: true, message: '请选择部门', trigger: 'change' }]">
<el-form-item v-if="crud.status.add" :label="$t('user.table_value.Department')" prop="depts" :rules="[{ required: true, message: '请选择部门', trigger: 'change' }]">
<treeselect
v-model="form.depts"
:load-options="loadDepts"
:options="deptDatas"
style="width: 370px;"
style="width: 200px;"
:multiple="true"
:flat="true"
:normalizer="normalizer"
placeholder="选择部门类目"
:placeholder="$t('user.table_value.Select_Sector_Categories')"
/>
</el-form-item>
<br v-if="!crud.status.add">
<el-form-item v-if="crud.status.add" label="密码" prop="password">
<el-form-item v-if="crud.status.add" :label="$t('user.table_value.Password')" prop="password">
<el-input v-model="form.password" style="width: 200px;" show-password auto-complete="new-password" />
</el-form-item>
<el-form-item label="性别">
<el-radio-group v-model="form.gender" style="width: 178px">
<el-radio label="">男</el-radio>
<el-radio label="">女</el-radio>
<el-form-item :label="$t('user.table_value.Sex')">
<el-radio-group v-model="form.gender" style="width: 200px">
<el-radio :label="$t('user.table_value.boy')">{{ $t('user.table_value.boy') }}</el-radio>
<el-radio :label="$t('user.table_value.girl')">{{ $t('user.table_value.girl') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态" prop="is_uesd">
<el-form-item :label="$t('user.table_value.State')" prop="is_uesd">
<el-switch
v-model="form.is_used"
active-color="#409EFF"
@@ -128,14 +128,14 @@
/>
</el-form-item>
<br v-if="!crud.status.edit">
<el-form-item v-if="crud.status.add" style="margin-bottom: 0;" label="角色" prop="roles">
<el-form-item v-if="crud.status.add" style="margin-bottom: 0;" :label="$t('role.table_value.Role')" prop="roles">
<el-select
v-model="roleDatas"
style="width: 512px"
style="width: 200px"
multiple
active-value="1"
inactive-value="0"
placeholder="请选择"
:placeholder="$t('common.please')"
@remove-tag="deleteTag"
@change="changeRole"
>
@@ -150,8 +150,8 @@
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
<el-button type="text" @click="crud.cancelCU">{{ $t('common.Cancel') }}</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">{{ $t('common.Confirm') }}</el-button>
</div>
</el-dialog>
<!--表格渲染-->
@@ -171,42 +171,42 @@
/>
<el-table-column prop="gender" :label="$t('user.table_value.Sex')" :min-width="flexWidth('gender',crud.data,$t('user.table_value.Sex'))" />
<el-table-column prop="phone" :label="$t('user.table_value.Phone')" :min-width="flexWidth('phone',crud.data,$t('user.table_value.Phone'))" />
<el-table-column prop="email" label="邮箱" :min-width="flexWidth('email',crud.data,'邮箱')" />
<el-table-column show-overflow-tooltip prop="depts" label="部门" :min-width="flexWidth('depts',crud.data,'邮箱')">
<el-table-column prop="email" :label="$t('user.table_value.Mailbox')" :min-width="flexWidth('email',crud.data,$t('user.table_value.Mailbox'))" />
<el-table-column show-overflow-tooltip prop="depts" :label="$t('user.table_value.Department')" :min-width="flexWidth('depts',crud.data,$t('user.table_value.Department'))">
<template slot-scope="scope">
<span v-for="(item, index) in scope.row.depts" :key="index">
{{ item.name }}<span v-if="index !== scope.row.depts.length - 1">、</span>
</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="enabled">
<el-table-column :label="$t('user.table_value.State')" align="center" prop="enabled" :min-width="flexWidth('enabled',crud.data,$t('user.table_value.State'))">
<template slot-scope="scope">
<span :style="{'color': caseStatusColorFilter(scope.row.is_used)}">{{ enabledTypeOptions.find(item => {return item.key == scope.row.is_used}).display_name }}</span>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建日期" :min-width="flexWidth('create_time',crud.data,'创建日期')" />
<el-table-column prop="create_time" :label="$t('user.table_value.create_Date')" :min-width="flexWidth('create_time',crud.data,$t('user.table_value.create_Date'))" />
<el-table-column
label="操作"
:label="$t('user.table_value.Operate')"
fixed="right"
align="center"
width="200"
>
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="crud.toEdit(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handdeleted(scope.row)">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="crud.toEdit(scope.row)">{{ $t('user.other.Revise') }}</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handdeleted(scope.row)">{{ $t('user.other.Delete') }}</el-button>
<el-dropdown v-hasPermi="['system:user:resetPwd', 'system:user:edit']" size="mini">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">{{ $t('user.other.More') }}</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-refresh-right"><span @click="resetPassword(scope.row)">重置密码</span></el-dropdown-item>
<el-dropdown-item icon="el-icon-refresh-right"><span @click="resetPassword(scope.row)">{{ $t('user.other.Reset') }}</span></el-dropdown-item>
<el-dropdown-item icon="el-icon-key">
<span @click="openDeptDrawer(scope.row)">部门权限</span>
<span @click="openDeptDrawer(scope.row)">{{ $t('user.other.Department_permissions') }}</span>
</el-dropdown-item>
<el-dropdown-item icon="el-icon-key">
<span @click="openDataDialog(scope.row)">数据权限</span>
<span @click="openDataDialog(scope.row)">{{ $t('user.other.Data_Permissions') }}</span>
</el-dropdown-item>
<el-dropdown-item icon="el-icon-lock"><span @click="changeEnabled(scope.row)">{{ enabledTypeOptions.find(item => {return item.key !== scope.row.is_used}).display_name }}账号</span></el-dropdown-item>
<el-dropdown-item icon="el-icon-lock"><span @click="changeEnabled(scope.row)">{{ enabledTypeOptions.find(item => {return item.key !== scope.row.is_used}).display_name }}{{ $t('user.other.Lock_account') }}</span></el-dropdown-item>
<el-dropdown-item icon="el-icon-circle-check">
<span @click="openRoleDrawer(scope.row)">分配角色</span>
<span @click="openRoleDrawer(scope.row)">{{ $t('user.other.Assign_roles') }}</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
@@ -356,6 +356,7 @@ import { mapGetters } from 'vuex'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import RelevanceUserDialog from '@/views/system/user/dialog/relevanceUserDialog'
import RelevanceDeptDialog from '@/views/system/user/dialog/relevanceDeptDialog'
import i18n from '@/i18n'
let userRoles = []
const defaultForm = {
@@ -374,7 +375,7 @@ export default {
name: 'User',
components: { RelevanceDeptDialog, RelevanceUserDialog, Treeselect, crudOperation, rrOperation, udOperation, pagination },
cruds() {
return CRUD({ title: '用户', idField: 'user_id', url: 'api/users', crudMethod: { ...crudUser }})
return CRUD({ title: i18n.t('user.table_value.User'), idField: 'user_id', url: 'api/users', crudMethod: { ...crudUser }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典
@@ -384,7 +385,7 @@ export default {
height: document.documentElement.clientHeight - 180 + 'px;',
deptName: '', depts: [], deptDatas: [], level: 3, roles: [],
roleDatas: [], // 多选时使用
defaultProps: { children: 'children', label: 'name' },
defaultProps: { children: 'children', label: this.$langPre.computedProp('name') },
deptProps: { children: 'children', label: 'name' },
permission: {
add: ['admin', 'user:add'],
@@ -392,8 +393,8 @@ export default {
del: ['admin', 'user:del']
},
enabledTypeOptions: [
{ key: true, display_name: '激活' },
{ key: false, display_name: '锁定' }
{ key: true, display_name: i18n.t('user.table_value.activation') },
{ key: false, display_name: i18n.t('user.table_value.lock') }
],
rules: {
username: [