Merge branch 'master' of http://111.30.93.211:10101/r/supipe
| | |
| | | public BasicResult materialRew(@RequestBody HashMap<String,Object> values) { |
| | | return materialReleaseService.materialRew(values); |
| | | } |
| | | |
| | | //搅拌站 (2023-11-14) 添加原料 入站 |
| | | @PostMapping("/mixingInsert") |
| | | public BasicResult mixingInsert(@RequestBody HashMap<String,Object> values) { |
| | | return materialReleaseService.mixingInsert(values); |
| | | } |
| | | |
| | | //搅拌站 (2023-11-14) 添加原料 入站 列表 |
| | | @PostMapping("/mixingList") |
| | | public BasicResult mixingList(@RequestBody HashMap<String,Object> values) { |
| | | return materialReleaseService.mixingList(values); |
| | | } |
| | | |
| | | } |
| 对比新文件 |
| | |
| | | package com.thhy.materials.modules.biz.concret.entity; |
| | | |
| | | import lombok.Data; |
| | | import lombok.Getter; |
| | | import lombok.Setter; |
| | | import lombok.ToString; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | @Data |
| | | @Getter |
| | | @Setter |
| | | @ToString |
| | | public class TMixing implements Serializable { |
| | | /** |
| | | * 拌合站id |
| | | */ |
| | | private String mixingId; |
| | | |
| | | /** |
| | | * 原材料 |
| | | */ |
| | | private String material; |
| | | |
| | | /** |
| | | * 规格型号 |
| | | */ |
| | | private String spec; |
| | | |
| | | /** |
| | | * 产地 |
| | | */ |
| | | private String producer; |
| | | |
| | | /** |
| | | * 炉编号 |
| | | */ |
| | | private String stove; |
| | | |
| | | /** |
| | | * 进厂数量 |
| | | */ |
| | | private String inNum; |
| | | |
| | | /** |
| | | * 进厂时间 |
| | | */ |
| | | private String inDate; |
| | | |
| | | /** |
| | | * 检验状态1合格2不合格3未检验 |
| | | */ |
| | | private Integer inspectState; |
| | | |
| | | /** |
| | | * 报告编号 |
| | | */ |
| | | private String reportNumber; |
| | | |
| | | /** |
| | | * This field was generated by MyBatis Generator. |
| | | * This field corresponds to the database table t_mixing |
| | | * |
| | | * @mbg.generated Tue Nov 14 10:28:16 CST 2023 |
| | | */ |
| | | private static final long serialVersionUID = 1L; |
| | | } |
| | |
| | | |
| | | import com.thhy.general.annotations.Idkey; |
| | | import com.thhy.materials.modules.biz.concret.entity.TMaterialRelease; |
| | | import com.thhy.materials.modules.biz.concret.entity.TMixing; |
| | | import com.thhy.materials.modules.biz.concret.entity.TRawMaterial; |
| | | import com.thhy.materials.modules.biz.concret.entity.TReleaseData; |
| | | import com.thhy.materials.modules.biz.concret.entity.dto.PieceDto; |
| | |
| | | List<PieceDto> pieceList(HashMap<String, Object> values); |
| | | |
| | | List<TRawMaterial> materialRew(Integer byId); |
| | | |
| | | void mixingInsert(@Idkey("mixingId") HashMap<String, Object> values); |
| | | |
| | | List<TMixing> mixingList(HashMap<String, Object> values); |
| | | } |
| | |
| | | BasicResult materialReleaseExcel(HashMap<String, Object> values, HttpServletResponse response) throws FileNotFoundException; |
| | | |
| | | BasicResult materialRew(HashMap<String, Object> values); |
| | | |
| | | BasicResult mixingInsert(HashMap<String, Object> values); |
| | | |
| | | BasicResult mixingList(HashMap<String, Object> values); |
| | | } |
| | |
| | | import com.thhy.general.config.SysUserInfo; |
| | | import com.thhy.general.utils.UserInfoUtils; |
| | | import com.thhy.materials.modules.biz.concret.entity.TMaterialRelease; |
| | | import com.thhy.materials.modules.biz.concret.entity.TMixing; |
| | | import com.thhy.materials.modules.biz.concret.entity.TRawMaterial; |
| | | import com.thhy.materials.modules.biz.concret.entity.TReleaseData; |
| | | import com.thhy.materials.modules.biz.concret.entity.dto.DicetName; |
| | |
| | | PageInfo<PieceDto> pieceDtoPageInfo = new PageInfo<>(pieceDtos); |
| | | return BasicResult.success(pieceDtoPageInfo); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult mixingInsert(HashMap<String, Object> values) { |
| | | values.put("mixingId",""); |
| | | materialReleaseMappper.mixingInsert(values); |
| | | return BasicResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult mixingList(HashMap<String, Object> values) { |
| | | Integer pageSize = Integer.valueOf(values.get("pageSize").toString()); |
| | | Integer pageNum = Integer.valueOf(values.get("pageNum").toString()); |
| | | PageHelper.startPage(pageNum,pageSize); |
| | | List<TMixing> mixings = materialReleaseMappper.mixingList(values); |
| | | PageInfo<TMixing> tMixingPageInfo = new PageInfo<>(mixings); |
| | | return BasicResult.success(tMixingPageInfo); |
| | | } |
| | | } |
| | |
| | | from t_raw_material |
| | | where Piece=#{byId} |
| | | </select> |
| | | <insert id="mixingInsert" > |
| | | insert into t_mixing |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="mixingId != null"> |
| | | mixing_id, |
| | | </if> |
| | | <if test="material != null"> |
| | | material, |
| | | </if> |
| | | <if test="spec != null"> |
| | | spec, |
| | | </if> |
| | | <if test="producer != null"> |
| | | producer, |
| | | </if> |
| | | <if test="stove != null"> |
| | | stove, |
| | | </if> |
| | | <if test="inNum != null"> |
| | | in_num, |
| | | </if> |
| | | <if test="inDate != null"> |
| | | in_date, |
| | | </if> |
| | | <if test="inspectState != null"> |
| | | inspect_state, |
| | | </if> |
| | | <if test="reportNumber != null"> |
| | | report_number, |
| | | </if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="mixingId != null"> |
| | | #{mixingId,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="material != null"> |
| | | #{material,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="spec != null"> |
| | | #{spec,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="producer != null"> |
| | | #{producer,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="stove != null"> |
| | | #{stove,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="inNum != null"> |
| | | #{inNum,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="inDate != null"> |
| | | #{inDate,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="inspectState != null"> |
| | | #{inspectState,jdbcType=INTEGER}, |
| | | </if> |
| | | <if test="reportNumber != null"> |
| | | #{reportNumber,jdbcType=VARCHAR}, |
| | | </if> |
| | | </trim> |
| | | </insert> |
| | | <select id="mixingList" resultType="com.thhy.materials.modules.biz.concret.entity.TMixing"> |
| | | select |
| | | mixing_id as mixingId, |
| | | material as material, |
| | | spec as spec, |
| | | producer as producer, |
| | | stove as stove, |
| | | in_num as inNum, |
| | | in_date as inDate, |
| | | inspect_state as inspectState, |
| | | report_number as reportNumber |
| | | from t_mixing |
| | | order by in_date desc |
| | | </select> |
| | | </mapper> |
| | |
| | | @Autowired |
| | | private RegionInspectionService regionInspectionService; |
| | | |
| | | /** |
| | | * 增加或修改 |
| | | * @param regionInspectionEntity |
| | | * @return |
| | | */ |
| | | @PostMapping("insertAndUpdate") |
| | | BasicResult insert(@RequestBody RegionInspectionEntity regionInspectionEntity){ |
| | | return regionInspectionService.insert(regionInspectionEntity); |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping("delete") |
| | | BasicResult delete(@RequestParam String id){ |
| | | return regionInspectionService.delete(id); |
| | | } |
| | | |
| | | /** |
| | | * 查询分页列表 |
| | | * @param map |
| | | * @return |
| | | */ |
| | | @PostMapping("selectPageList") |
| | | BasicResult selectPageList(@RequestBody Map map){ |
| | | return regionInspectionService.selectPageList(map); |
| | |
| | | import com.thhy.secure.modules.biz.regionInspection.entity.RegionInspectionUserEntity; |
| | | import com.thhy.secure.modules.biz.regionInspection.mapper.RegionInspectionMapper; |
| | | import com.thhy.secure.modules.biz.regionInspection.service.RegionInspectionService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | //默认给uuid |
| | | String regionInspectId = UUIDUtils.create(); |
| | | //修改区域巡检判断 |
| | | if (!"".equals(regionInspectionEntity.getId())){ |
| | | if (StringUtils.isNotBlank(regionInspectionEntity.getId())){ |
| | | regionInspectId = regionInspectionEntity.getId(); |
| | | //根据区域巡检id删除中间表 |
| | | regionInspectionEntity.setUpdateTime(new Date()); |
| | |
| | | </if> |
| | | </trim> |
| | | on duplicate key update |
| | | <trim suffixOverrides=","> |
| | | <if test="task != null"> |
| | | task = #{task,jdbcType=VARCHAR}, |
| | | </if> |
| | |
| | | <if test="companyId != null"> |
| | | companyId = #{companyId,jdbcType=VARCHAR}, |
| | | </if> |
| | | </trim> |
| | | |
| | | </insert> |
| | | |
| | |
| | | axios.post('/secure/tRegionWarranty/update', params),
|
| | | delete: params =>
|
| | | axios.get('/secure/tRegionWarranty/delete', { params }),
|
| | | },
|
| | | // 区域巡检
|
| | | polling: {
|
| | | getLists: params =>
|
| | | axios.post('/secure/regioninspection/selectPageList', params),
|
| | | insert: params => axios.post('/secure/regioninspection/insertAndUpdate', params),
|
| | | update: params => axios.post('/secure/regioninspection/insertAndUpdate', params),
|
| | | delete: params => axios.get('/secure/regioninspection/delete', { params })
|
| | | }
|
| | | },
|
| | | /**
|
| | |
| | | getDetailWarning: params =>
|
| | | axios.post('/materials/helmet/helmetReportUser', params),
|
| | | },
|
| | | // 区域包保
|
| | | allocation : {
|
| | | getLists: params =>
|
| | | axios.post('/secure/tRegionWarranty/findAll', params),
|
| | | insert: params =>
|
| | | axios.post('/secure/tRegionWarranty/insert', params),
|
| | | update: params =>
|
| | | axios.post('/secure/tRegionWarranty/update', params),
|
| | | delete: params =>
|
| | | axios.get('/secure/tRegionWarranty/delete', { params }),
|
| | | }
|
| | | },
|
| | |
|
| | |
|
| | |
| | | <div class="role">
|
| | | <!-- https://juejin.cn/post/7042597964618924069?searchId=202310071305486BA29870D97939288832#heading-8 -->
|
| | | <!-- https://juejin.cn/post/7139110255748710436?searchId=2023092815420483B1983D44854DBE6608#comment -->
|
| | | <el-form |
| | | ref="ruleForm" |
| | | class="rule-form" |
| | | :model="formConfig.formModels"
|
| | | :rules="formConfig.formRules"
|
| | | <el-form ref="ruleForm" class="rule-form" :model="formConfig.formModels" :rules="formConfig.formRules"
|
| | | :label-width="formConfig.labelWidth || 'auto'">
|
| | |
|
| | | <el-row>
|
| | | <el-col v-for="item in formConfig.formItems" :key="item.label" :span="item.span || 24">
|
| | | <el-col v-for="item in formItems" :key="item.label" :span="item.span || 24"> |
| | | <el-form-item :label="item.label" :style="formConfig.itemStyle || null">
|
| | |
|
| | | <template v-if="item.type === 'input' || item.type === 'password'">
|
| | |
| | | :show-password="item.type === 'password'"></el-input>
|
| | | </template>
|
| | |
|
| | | <template v-else-if="item.type === 'textarea'">
|
| | | <el-input type="textarea" :placeholder="item.placeholder || `请输入${item.label}`"></el-input>
|
| | | </template>
|
| | |
|
| | | <template v-else-if="item.type === 'select'">
|
| | | <el-select :placeholder="item.placeholder || `请选择${item.label}`">
|
| | | <el-option v-for="option in item.options" :key="option.label" :label="option.label"
|
| | | :value="option.value"></el-option>
|
| | | <el-select v-model="formConfig.formModels.realNames" :placeholder="item.placeholder || `请选择${item.label}`">
|
| | | <el-option v-for="option in item.options" :key="option.id" :label="option.label"
|
| | | :value="option.id"></el-option>
|
| | | </el-select>
|
| | | </template>
|
| | |
|
| | |
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | |
|
| | | </el-form>
|
| | | </div>
|
| | | </template>
|
| | | <script>
|
| | | export default {
|
| | | name: "cForm",
|
| | | data() {
|
| | | return {}
|
| | | },
|
| | | props: {
|
| | | formConfig: {
|
| | | type: Object,
|
| | | default: () => ({})
|
| | | }
|
| | | default: () => { }
|
| | | },
|
| | | formItems: {
|
| | | type: Array,
|
| | | default: () => []
|
| | | },
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
| | | Vue.directive('permission', { |
| | | inserted: (el, binding) => { |
| | | const { value } = binding |
| | | if (!value) return
|
| | |
|
| | | const pinia = buttonPinia() |
| | | const piniaBtns = pinia.$state.buttonInfo |
| | | if (value && !piniaBtns.includes(value)) { |
| | | if (piniaBtns.includes(value)) {
|
| | | value === 'insert' && (el.className += ' search_btn')
|
| | | value === 'update' && (el.className += ' table_btn')
|
| | | value === 'delete' && (el.className += ' delete_btn')
|
| | | } else {
|
| | | el.parentNode.removeChild(el) |
| | | } |
| | | } |
| | |
| | | <el-table-column prop="checkTime" label="质检时间" align="center" width="160"></el-table-column>
|
| | | <el-table-column prop="groupName" label="生产班组" align="center"></el-table-column>
|
| | | <el-table-column prop="proName" label="项目" align="center" width="250" show-overflow-tooltip></el-table-column>
|
| | | <el-table-column prop="checkResult" label="质量标注" align="center"></el-table-column>
|
| | | <el-table-column label="质量标注" align="center">
|
| | | <template #default="{ row }">
|
| | | <div>
|
| | | {{ row.checkResult == 0 ? '未质检' : row.checkResult == 1 ? '合格' : row.checkResult == 2 ? '不合格' : row.checkResult == 3 ? '报废' : ''}}
|
| | | </div>
|
| | | </template>
|
| | | </el-table-column>
|
| | | </el-table>
|
| | | </div>
|
| | | <div class="bear_footer">
|
| | |
| | | <el-table-column prop="checkTime" label="质检时间" align="center" width="160"></el-table-column> |
| | | <el-table-column prop="groupName" label="生产班组" align="center" ></el-table-column> |
| | | <el-table-column prop="proName" label="项目" align="center" width="250" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="checkResult" label="质量标注" align="center" ></el-table-column> |
| | | <el-table-column label="质量标注" align="center" > |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{ row.checkResult == 0 ? '未质检' : row.checkResult == 1 ? '合格' : row.checkResult == 2 ? '不合格' : row.checkResult == 3 ? '报废' : ''}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="bear_footer"> |
| | |
| | | <!-- 物资管理=>消耗统计=>辅材消耗 -->
|
| | | <template> |
| | | <div class="main"> |
| | | <div class="main_header"> |
| | |
| | | } |
| | | }, |
| | | mounted() { |
| | | // this.searchButtonInfo() |
| | | this.searchButtonInfo()
|
| | | this.getAllTypes() |
| | | }, |
| | | methods: { |
| | |
| | | <!-- 物资管理=>消耗统计=>能源消耗 -->
|
| | | <template> |
| | | <div>能源消耗</div> |
| | | <div class="main">
|
| | | <div class="main_tabs">
|
| | | <el-tabs v-model="activeName">
|
| | | <el-tab-pane label="用电消耗" name="electro"></el-tab-pane>
|
| | | <el-tab-pane label="用水消耗" name="water"></el-tab-pane>
|
| | | <el-tab-pane label="用气消耗" name="gas"></el-tab-pane>
|
| | | </el-tabs>
|
| | | </div>
|
| | | <div class="main_header">
|
| | | <div class="header_item">
|
| | | <span class="header_label">时间范围:</span>
|
| | | <el-date-picker v-model="date" type="daterange"></el-date-picker>
|
| | | </div>
|
| | | <div class="header_item">
|
| | | <el-button icon="el-icon-search" v-permission="'search'" @click="searchDeviceInfoList(true)">查询</el-button>
|
| | | </div>
|
| | | </div>
|
| | | <div class="main_content">
|
| | | <!-- <cpnTable :table-index="true" :table-loading="loading" :table-data="dataList" :table-columns="tableColumns"
|
| | | :page-total="total" :page-num.sync="queryInfo.pageNum" :page-size.sync="queryInfo.pageSize"
|
| | | :page-change="pageChange">
|
| | | </cpnTable> -->
|
| | | </div>
|
| | | </div>
|
| | | </template> |
| | | |
| | | <script>
|
| | | // import {downFiles, throttle} from '../../../plugins/public'
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | loading: '',
|
| | | date: [],
|
| | | activeName: 'electro',
|
| | | dataList: [],
|
| | | tableColumns: [],
|
| | | total: '',
|
| | | queryInfo: {
|
| | | pageNum: 1,
|
| | | pageSize: 5
|
| | | }
|
| | | }
|
| | | },
|
| | | created() {
|
| | |
|
| | | },
|
| | | methods: {
|
| | | pageChange() {
|
| | |
|
| | | }
|
| | | },
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | @import '../../../style/layout-main.scss';
|
| | | </style> |
| | |
| | | <!-- 物资管理=>消耗统计=>原材料消耗 -->
|
| | | <template> |
| | | <div class="main"> |
| | | <div class="main_header"> |
| | |
| | | <div class="main_middle_matter"> |
| | | <div class="middle_items" v-for="(item,index) in showDatas" :key="index"> |
| | | <div class="middle_items_text">{{item.materialName}}</div> |
| | | <div class="middle_items_datas">{{item.materialValue}}</div> |
| | | <div class="middle_items_datas">{{item.materialValue | toFloat }}</div>
|
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | }, |
| | | } |
| | | }, |
| | | filters: {
|
| | | toFloat(value) {
|
| | | return value && value !== '0' ? value.split('.')[0] + '.00' : 0
|
| | | }
|
| | | },
|
| | | mounted() { |
| | | // this.searchButtonInfo() |
| | | this.searchButtonInfo()
|
| | | this.getAllTypes() |
| | | }, |
| | | methods: { |
| | |
| | | justify-content: space-between; |
| | | |
| | | .middle_items{ |
| | | width: 150px; |
| | | height: 80px; |
| | | padding: 0.6% 2.4%;
|
| | | background: url('../../../assets/stir_img.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | display: flex; |
| | |
| | | <!-- 物资管理=>消耗统计=>钢筋消耗 -->
|
| | | <template> |
| | | <div class="main"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">型号:</span> |
| | | <el-select v-model="search.steelId" placeholder="请选择型号" clearable> |
| | | <el-option |
| | | v-for="item in optionRebar" |
| | | :key="item.steelId" |
| | | :label="item.steelName" |
| | | <el-option v-for="item in optionRebar" :key="item.steelId" :label="item.steelName"
|
| | | :value="item.steelId"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | </div> |
| | | <div class="header_item" v-if="showTimes"> |
| | | <span class="header_label">选择时间:</span> |
| | | <el-date-picker |
| | | v-model="search.dayData" |
| | | :picker-options="pickerOptionsDay" |
| | | :clearable="false" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | <el-date-picker v-model="search.dayData" :picker-options="pickerOptionsDay" :clearable="false"
|
| | | type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期"
|
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="header_item" v-if="!showTimes"> |
| | | <span class="header_label">选择月份:</span> |
| | | <el-date-picker |
| | | v-model="search.monthData" |
| | | :picker-options="pickerOptionsMonth" |
| | | :clearable="false" |
| | | type="monthrange" |
| | | value-format="yyyy-MM" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | <el-date-picker v-model="search.monthData" :picker-options="pickerOptionsMonth" :clearable="false"
|
| | | type="monthrange" value-format="yyyy-MM" range-separator="至" start-placeholder="开始日期"
|
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button v-if="showButton('search')" icon="el-icon-search" @click="searchButtonInfo()">查询</el-button> |
| | | <el-button v-if="showButton('export')" icon="el-icon-download" @click="exportBearExcel()">导出Excel</el-button> |
| | | <el-button v-if="showButton('export')" icon="el-icon-download"
|
| | | @click="exportBearExcel()">导出Excel</el-button>
|
| | | </div> |
| | | </div> |
| | | <div class="main_middle"> |
| | |
| | | } |
| | | }, |
| | | mounted() { |
| | | // this.searchButtonInfo() |
| | | this.searchButtonInfo()
|
| | | this.getAllTypes() |
| | | }, |
| | | methods: { |
| | |
| | | res.data.forEach(item=>{ |
| | | let xtitle = item.betweenDate |
| | | let showStock = [] |
| | | item.steelStatisticsDtos.forEach(ite=>{ |
| | | xtitle.forEach(iten=>{ |
| | | if(iten === ite.getDate){ |
| | | showStock.push({ |
| | | getDate:iten, |
| | | changeStock:ite.changeStock |
| | | }) |
| | | }else{ |
| | | showStock.push({ |
| | | getDate:iten, |
| | | changeStock:0 |
| | | }) |
| | | let _steelStatisticsDtos = {}
|
| | | item.steelStatisticsDtos.forEach(val => {
|
| | | if (!_steelStatisticsDtos[val.getDate]) {
|
| | | _steelStatisticsDtos[val.getDate] = val
|
| | | } |
| | | })
|
| | | xtitle.forEach(val => {
|
| | | let value = _steelStatisticsDtos[val]
|
| | | showStock.push({
|
| | | getDate: val,
|
| | | changeStock: value ? value.changeStock : 0
|
| | | }) |
| | | }) |
| | | this.$nextTick(() => { |
| | |
| | | position: relative; |
| | | padding: 10px 15px; |
| | | border-bottom:1px solid #1B50AE ; |
| | |
|
| | | &::before{ |
| | | content: ""; |
| | | position: absolute; |
| | |
| | | background-color: #18F6F8; |
| | | } |
| | | } |
| | |
|
| | | .main_middle_matter{ |
| | | padding-top: 15px; |
| | | width: 100%; |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex-direction: column; |
| | |
|
| | | .middle_items_text{ |
| | | color: #E1E5EB; |
| | | } |
| | |
|
| | | .middle_items_datas{ |
| | | color: #18F6F8; |
| | | font-size: 18px; |
| | |
| | | padding-top: 10px; |
| | | padding-bottom: 15px; |
| | | margin-bottom: 20px; |
| | |
|
| | | .main_echart_titles{ |
| | | width: 97%; |
| | | color: #18F6F8; |
| | |
| | | padding-left: 15px; |
| | | border-bottom: 1px solid #1C51B1; |
| | | position: relative; |
| | |
|
| | | &::before{ |
| | | width: 2px; |
| | | height: 15px; |
| | |
| | | background-color: #18F6F8; |
| | | } |
| | | } |
| | |
|
| | | .main_content_chart { |
| | | height: 100%; |
| | | } |
| | | } |
| | |
|
| | | /deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner{ |
| | | color: #19F7F9; |
| | | border-color: #18F6F8; |
| | | background-color: #0D4573!important; |
| | | } |
| | |
|
| | | /deep/.el-radio-button__inner{ |
| | | background-color: #0D4573; |
| | | border-color:#18F6F8; |
| | |
| | | <!-- 导航菜单 --> |
| | | <template> |
| | | <div class="menu_index"> |
| | | <el-menu |
| | | unique-opened |
| | | :default-active="$route.path" |
| | | class="el-menu-vertical-demo" |
| | | background-color="transparent" |
| | | text-color="#EAEAEA" |
| | | @select="changeRouter"> |
| | | <template v-for="item in routerList"> |
| | | <template v-if="item.children && item.children.length > 1"> |
| | | <el-menu unique-opened :default-active="$route.path" class="el-menu-vertical-demo" background-color="transparent" |
| | | text-color="#EAEAEA" @select="changeRouter"> |
| | | <template v-for="(item, index) in routerList"> |
| | | |
| | | <template v-if="item.children && item.children.length >= 1"> |
| | | <el-submenu :key="item.name" :index="item.path"> |
| | | <template slot="title"> |
| | | <i class="icon"><img :src="menuIcons[index] ? menuIcons[index] : menuIcons[0]"></i> |
| | | <span>{{item.meta.title}}</span> |
| | | </template> |
| | | <!-- <template v-for="items in item.children"> |
| | | <el-menu-item :index="items.path" :key="items.name">{{items.meta.title}}</el-menu-item> |
| | | </template> --> |
| | | |
| | | |
| | | <template v-for="three in item.children"> |
| | | <template v-if="three.children && three.children.length > 1"> |
| | | <template v-if="three.children && three.children.length >= 1"> |
| | | <el-submenu :key="three.name" :index="three.path" class="titles_two"> |
| | | <template slot="title"> |
| | | <span>{{three.meta.title}}</span> |
| | | </template> |
| | | <template v-for="items in three.children"> |
| | | <el-menu-item |
| | | :index="items.path" |
| | | <el-menu-item class="three-menu-item" v-for=" items in three.children " :index="items.path" |
| | | :key="items.name"> |
| | | {{items.meta.title}} |
| | | </el-menu-item> |
| | | </template> |
| | | </el-submenu> |
| | | </template> |
| | | <template v-else-if="three.children && three.children.length === 1"> |
| | | <el-submenu :key="three.name" :index="three.path"> |
| | | <template slot="title"> |
| | | <span>{{three.meta.title}}</span> |
| | | </template> |
| | | <el-menu-item :index="three.children[0].path" :key="three.children[0].name">{{three.children[0].meta.title}}</el-menu-item> |
| | | </el-submenu> |
| | | <!-- <el-menu-item :index="three.children[0].path" :key="three.children[0].name"> |
| | | <span slot="title">{{three.children[0].meta.title}}</span> |
| | | </el-menu-item> --> |
| | | </template> |
| | | <template v-else> |
| | | <el-menu-item :index="three.path" :key="three.name"> |
| | | <el-menu-item class="two-menu-item" :index="three.path" :key="three.name"> |
| | | <span slot="title">{{three.meta.title}}</span> |
| | | </el-menu-item> |
| | | </template> |
| | | </template> |
| | | |
| | | |
| | | </el-submenu> |
| | | </template> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <template v-else-if="item.children && item.children.length === 1"> |
| | | <el-menu-item :index="item.children[0].path" :key="item.children[0].name"> |
| | | <span slot="title">{{item.children[0].meta.title}}</span> |
| | | </el-menu-item> |
| | | </template> |
| | | <template v-else> |
| | | <el-menu-item :index="item.path" :key="item.name"> |
| | | <span slot="title">{{item.meta.title}}</span> |
| | | </el-menu-item> |
| | | </template> |
| | | |
| | | </template> |
| | | </el-menu> |
| | | </div> |
| | |
| | | data() { |
| | | return { |
| | | routerList: [], // 导航栏数据 |
| | | menuIcons: [] |
| | | }; |
| | | }, |
| | | created() { |
| | | this.menuIcons = [ |
| | | require('@/assets/icon/icon0.png'), |
| | | require('@/assets/icon/icon1.png'), |
| | | require('@/assets/icon/icon2.png'), |
| | | require('@/assets/icon/icon3.png'), |
| | | require('@/assets/icon/icon4.png'), |
| | | require('@/assets/icon/icon5.png'), |
| | | require('@/assets/icon/icon6.png'), |
| | | require('@/assets/icon/icon7.png'), |
| | | require('@/assets/icon/icon8.png'), |
| | | ] |
| | | }, |
| | | mounted() { |
| | | this.routerList = this.$router.options.routes |
| | |
| | | overflow-y: auto; |
| | | border-top: 1px solid rgba(57,181,254,0.16); |
| | | |
| | | .icon { |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | margin-right: 5px; |
| | | width: 24px; |
| | | text-align: center; |
| | | |
| | | img { |
| | | width: 65%; |
| | | } |
| | | } |
| | | |
| | | &::-webkit-scrollbar { |
| | | width: 4px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | border-radius: 10px; |
| | | box-shadow: inset 0 0 5px transparent; |
| | | background: rgba(57, 181, 254, .6); |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | box-shadow: inset 0 0 5px transparent; |
| | | border-radius: 10px; |
| | | background: rgba(57, 181, 254, .5) 5%,; |
| | | } |
| | | } |
| | | |
| | | .titles_two{ |
| | | padding-left: 15px; |
| | | text-indent: 30px; |
| | | |
| | | /deep/ .el-menu { |
| | | padding: 14px 0; |
| | | background: rgba(33, 83, 139, .75) !important; |
| | | } |
| | | } |
| | | |
| | | /deep/ .el-menu { |
| | | border-right: 0; |
| | | } |
| | | |
| | | /deep/ .el-submenu .el-menu-item { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | /deep/ .three-menu-item { |
| | | padding-left: 50px !important; |
| | | height: 45px; |
| | | line-height: 45px; |
| | | } |
| | | |
| | | /deep/ .two-menu-item { |
| | | height: 45px; |
| | | text-indent: 20px; |
| | | line-height: 45px; |
| | | } |
| | | |
| | | /deep/ .el-menu-item.is-active { |
| | | padding-left: 45px!important; |
| | | position: relative; |
| | | // margin-left: 10px; |
| | | color: #EAEAEA; |
| | | border-radius: 3px; |
| | | background: linear-gradient( |
| | | 90deg, |
| | | rgba(57, 181, 254, .5) 5%, |
| | | transparent 95%) !important; |
| | | background: linear-gradient(90deg, rgba(57, 181, 254, .5) 5%, rgba(57, 181, 254, .1) 100%) !important; |
| | | |
| | | &::before { |
| | | content: ''; |
| | |
| | | </div>
|
| | | <div class="header_item">
|
| | | <el-button icon="el-icon-search" v-permission="'search'" @click="queryReset">查询</el-button>
|
| | | <el-button class="search_btn" icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button>
|
| | | <el-button icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button>
|
| | | </div>
|
| | | </div>
|
| | |
|
| | |
| | | {name: "应对措施", key: "countermeasures", showOverflowTip: true},
|
| | | {
|
| | | operation: true, name: "操作", width: 140, value: [
|
| | | {name: "修改", class: "table_btn", permission: "update", handleRow: this.updateRow},
|
| | | {name: "删除", class: "delete_btn", permission: "delete", handleRow: this.deleteRow},
|
| | | {name: "修改", permission: "update", handleRow: this.updateRow},
|
| | | {name: "删除", permission: "delete", handleRow: this.deleteRow},
|
| | | ]
|
| | | },
|
| | | ]
|
| | |
| | | <!-- 安全管理 ==> 风险分级管控 => 区域巡检-->
|
| | | <template> |
| | | <div>区域巡检</div> |
| | | <div class="main">
|
| | | <div class="main_tabs">
|
| | | <el-tabs v-model="activeName">
|
| | | <el-tab-pane label="巡检任务" name="first"></el-tab-pane>
|
| | | <el-tab-pane label="任务打卡" name="second"></el-tab-pane>
|
| | | </el-tabs>
|
| | | </div>
|
| | | <div class="main_header">
|
| | | <div class="header_item">
|
| | | <span class="header_label">巡检任务:</span>
|
| | | <el-input size="mini" v-model="queryInfo.task" placeholder="请输入巡检任务" clearable></el-input>
|
| | | </div>
|
| | | <div class="header_item">
|
| | | <span class="header_label">巡检人员:</span>
|
| | | <el-input size="mini" v-model="queryInfo.realName" placeholder="请输入巡检人员" clearable></el-input>
|
| | | </div>
|
| | | <div class="header_item">
|
| | | <el-button icon="el-icon-search" v-permission="'search'" @click="queryReset">查询</el-button>
|
| | | <el-button icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button>
|
| | | </div>
|
| | | </div>
|
| | | <div class="main_content">
|
| | | <cpn-table :table-index="true" :table-loading="tableConfig.loading" :table-data="tableConfig.tableData"
|
| | | :table-columns="tableConfig.tableColumns" :page-total="tableConfig.total" :page-num.sync="queryInfo.pageNum"
|
| | | :page-size.sync="queryInfo.pageSize" :page-change="pageChange">
|
| | | </cpn-table>
|
| | | </div>
|
| | | <!-- dialog -->
|
| | | <el-dialog width="400px" class="prop_dialog" v-if="isRenderDialog" :title="dialogTitle" :visible.sync="asyncVisible"
|
| | | @close="closeForm">
|
| | |
|
| | | <!-- <cpn-form :form-config="formConfig" :form-items="formConfig.formItems"></cpn-form> -->
|
| | |
|
| | | <el-form class="rule_form" ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto">
|
| | |
|
| | | <el-form-item label="巡检任务:" prop="task">
|
| | | <el-input v-model="ruleForm.task" placeholder="请输入巡检任务" clearable></el-input>
|
| | | </el-form-item>
|
| | |
|
| | | <el-form-item label="巡检标准:" prop="standard">
|
| | | <el-input type="textarea" v-model="ruleForm.standard" placeholder="请输入巡检标准" clearable></el-input>
|
| | | </el-form-item>
|
| | |
|
| | | <el-form-item label="巡检人员:" prop="realNames">
|
| | | <el-select v-model="ruleForm.realNames" multiple value-key="id" placeholder="请选择巡检人员">
|
| | | <el-option v-for="item in allPersons" :key="item.id" :label="item.label" :value="item"></el-option>
|
| | | </el-select>
|
| | | </el-form-item>
|
| | |
|
| | | <div class="divider"><span>巡检路线</span></div>
|
| | |
|
| | | <el-form-item label-width="0" v-for="(itemP, index) in ruleForm.paths " :key="index" :prop="'paths.' +
|
| | | index + '.value'" :rules="{ required: true, message: '请选择巡检路线', trigger: 'change' }">
|
| | | <el-select style="margin-right: 10px;width: 323px;" v-model="itemP.value" value-key="id"
|
| | | placeholder="请选择巡检路线">
|
| | | <el-option v-for=" item in allPath" :key="item.id" :label="item.label" :value="item"></el-option>
|
| | | </el-select>
|
| | | <el-button class="delete_btn" @click="delPath(itemP)">删除</el-button>
|
| | | <el-button class="table_btn" v-show="index === ruleForm.paths.length - 1"
|
| | | @click="addPath">添加</el-button>
|
| | | </el-form-item>
|
| | | <!-- <el-form-item label="区域名称:" prop="regionHazardInformId">
|
| | | <el-select v-model="ruleForm.regionHazardInformId" placeholder="请选择区域名称">
|
| | | <el-option v-for="item in areaNames" :key="item.id" :label="item.region" :value="item.id">
|
| | | </el-option>
|
| | | </el-select>
|
| | | </el-form-item> -->
|
| | | </el-form>
|
| | | <div slot="footer">
|
| | | <el-button @click="asyncVisible = false">取 消</el-button>
|
| | | <el-button class="submit_btn" @click="onSubmit('ruleForm')">提 交</el-button>
|
| | | </div>
|
| | | </el-dialog>
|
| | | </div>
|
| | | </template> |
| | | <script>
|
| | | import {throttle} from '@/plugins/public'
|
| | | import cpnTable from '@/components/element/Table'
|
| | | // import cpnForm from '@/components/element/Form'
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | isRenderDialog: false,
|
| | | asyncVisible: false,
|
| | | activeName: 'first', // tabs切换
|
| | | submitMode: '', // 提交方式: add / update
|
| | | allPersons: [], // 巡检人员
|
| | | allPath: [], // 巡检路线
|
| | | queryInfo: {
|
| | | pageNum: 1,
|
| | | pageSize: 10,
|
| | | task: '',
|
| | | realName: '',
|
| | | },
|
| | | ruleForm: {
|
| | | id: '',
|
| | | task: '',
|
| | | standard: '',
|
| | | realNames: [],
|
| | | paths: [
|
| | | {value: ''},
|
| | | ],
|
| | | },
|
| | | rules: {
|
| | | task: [{required: true, message: '请输入巡检任务', trigger: 'blur'}],
|
| | | standard: [{required: true, message: '请输入巡检标准', trigger: 'blur'}],
|
| | | realNames: [{required: true, message: '请选择巡检人员', trigger: 'change'}],
|
| | | },
|
| | | tableConfig: {
|
| | | loading: true,
|
| | | tableData: [],
|
| | | tableColumns: [],
|
| | | total: 0,
|
| | | },
|
| | | formConfig: {}
|
| | | }
|
| | | },
|
| | | components: {
|
| | | cpnTable,
|
| | | // cpnForm,
|
| | | },
|
| | | computed: {
|
| | | isUpdate() {
|
| | | return this.submitMode === 'update'
|
| | | },
|
| | | dialogTitle() {
|
| | | return this.isUpdate ? '修改巡检任务' : '新增巡检任务'
|
| | | },
|
| | | },
|
| | | beforeCreate() {
|
| | | this.$http = this.$api.Safety.RiskGrad.polling
|
| | | },
|
| | | created() {
|
| | | this.setTableColumn()
|
| | | this.setFormColumn()
|
| | | this.getLists()
|
| | | },
|
| | | methods: {
|
| | | // 获取table列表数据
|
| | | getLists() {
|
| | | let params = this.queryInfo
|
| | | let tableConfig = this.tableConfig
|
| | | this.$http.getLists(params).then(res => {
|
| | | if (res.statusMsg === 'ok') {
|
| | | tableConfig.total = res.data.total
|
| | | tableConfig.tableData = res.data.list
|
| | | }
|
| | | tableConfig.loading = false
|
| | | })
|
| | | },
|
| | | // 获取管服人员数据(巡检人员)
|
| | | getPerson() {
|
| | | return new Promise(resolve => {
|
| | | this.$api.Personnerl.SEARCHMORTGAGEELIST({
|
| | | userType: 1,
|
| | | pageNum: 1,
|
| | | pageSize: 9999
|
| | | }).then((res) => {
|
| | | if (res.success) {
|
| | | const list = res.data.list
|
| | | const out = []
|
| | | list.forEach(item => {
|
| | | out.push({
|
| | | id: item.userId,
|
| | | label: item.realName,
|
| | | })
|
| | | })
|
| | | this.allPersons.push(...out)
|
| | | resolve()
|
| | | }
|
| | | })
|
| | | })
|
| | | },
|
| | | // 获取巡检路线
|
| | | getPath() {
|
| | | new Promise(resolve => {
|
| | | this.$api.Safety.RiskGrad.warning.getLists({
|
| | | pageNum: 1,
|
| | | pageSize: 9999
|
| | | }).then((res) => {
|
| | | if (res.success) {
|
| | | const list = res.data.list
|
| | | const out = []
|
| | | list.forEach(item => {
|
| | | out.push({
|
| | | id: item.id,
|
| | | label: item.region
|
| | | })
|
| | | })
|
| | | this.allPath.push(...out)
|
| | | resolve()
|
| | | }
|
| | | })
|
| | | })
|
| | | },
|
| | | // 初始化 table 配置
|
| | | setTableColumn() {
|
| | | this.tableConfig.tableColumns = [
|
| | | {index: true},
|
| | | {name: "巡检任务", key: "task"},
|
| | | {name: "巡检标准", key: "standard"},
|
| | | {name: "巡检人员", key: "regionUsersList", formatter: row => row.realNames},
|
| | | {name: "巡检路线", key: "regionList", formatter: row => row.regions},
|
| | | {
|
| | | operation: true, name: "操作", width: 140, value: [
|
| | | {name: "修改", permission: "update", handleRow: this.updateRow},
|
| | | {name: "删除", permission: "delete", handleRow: this.deleteRow},]
|
| | | },
|
| | | ]
|
| | | },
|
| | | // 初始化 form 配置
|
| | | setFormColumn() {
|
| | | this.formConfig = {
|
| | | formModels: {
|
| | | task: '',
|
| | | standard: '',
|
| | | realNames: [],
|
| | | },
|
| | | formItems: [
|
| | | {type: 'input', label: '巡检任务'},
|
| | | {type: 'textarea', label: '巡检标准'},
|
| | | {
|
| | | type: 'select', label: '用户状态', options: this.allPersons,
|
| | | }
|
| | | // {
|
| | | // type: 'datepicker', label: '创建时间', otherOptions: {
|
| | | // startPlaceholder: '开始时间',
|
| | | // endPlaceholder: '结束时间',
|
| | | // type: 'daterange',
|
| | | // 'unlink-panels': true
|
| | | // }
|
| | | // }
|
| | | ],
|
| | | itemColLayout: {
|
| | | span: 8
|
| | | }
|
| | | }
|
| | | },
|
| | | // 查询按钮列表信息
|
| | | queryReset() {
|
| | | this.queryInfo.pageNum = 1
|
| | | this.queryInfo.pageSize = 10
|
| | | this.getLists()
|
| | | },
|
| | | // 重置表单
|
| | | resetForm(formName) {
|
| | | this.$refs[formName].resetFields()
|
| | | this.ruleForm.paths = [{value: ''}]
|
| | | },
|
| | | // 显示表单
|
| | | async showForm() {
|
| | | !this.allPath.length && this.getPath()
|
| | | !this.allPersons.length && this.getPerson()
|
| | | !this.isRenderDialog && (this.isRenderDialog = true)
|
| | | this.asyncVisible = true
|
| | | },
|
| | | closeForm() {
|
| | | this.resetForm('ruleForm')
|
| | | this.asyncVisible = false
|
| | | },
|
| | | // 添加数据
|
| | | addRow() {
|
| | | this.submitMode = 'add'
|
| | | this.showForm()
|
| | |
|
| | |
|
| | | console.log(this.allPersons)
|
| | | console.log(this.formConfig)
|
| | | },
|
| | | updateRow(row) {
|
| | | this.submitMode = 'update'
|
| | | this.showForm()
|
| | | this.$nextTick(() => {
|
| | | const {id, task, standard, regionUsersList, regionList} = row
|
| | | const realNames = regionUsersList.map(item => {
|
| | | return {
|
| | | id: item.userId,
|
| | | label: item.realName,
|
| | | }
|
| | | })
|
| | | const paths = regionList.map(item => {
|
| | | return {
|
| | | value: {
|
| | | id: item.regionHazardInformId,
|
| | | label: item.region,
|
| | | },
|
| | | }
|
| | | })
|
| | | this.ruleForm = {
|
| | | id,
|
| | | task,
|
| | | standard,
|
| | | realNames,
|
| | | paths,
|
| | | }
|
| | | })
|
| | | },
|
| | | deleteRow(row) {
|
| | | const params = {id: row.id}
|
| | | this.$confirm("该操作将删除该信息,是否继续删除?", "提示", {
|
| | | confirmButtonText: "确定",
|
| | | cancelButtonText: "取消",
|
| | | type: "warning"
|
| | | }).then(() => {
|
| | | this.$http.delete(params).then(res => {
|
| | | if (res.statusMsg === 'ok') {
|
| | | this.queryReset()
|
| | | this.$message.success("删除成功!")
|
| | | } else {
|
| | | this.$message.warning(res.statusMsg)
|
| | | }
|
| | | })
|
| | | }).catch(() => {
|
| | | this.$message.warning("您已取消")
|
| | | })
|
| | |
|
| | | },
|
| | | // 提交表单
|
| | | onSubmit: throttle(function (formName) {
|
| | | this.$refs[formName].validate(valid => {
|
| | | if (!valid) return
|
| | | const {id, task, standard, realNames, paths} = this.ruleForm
|
| | | const regionList = paths.map((item, index) => {
|
| | | return {
|
| | | sort: index + 1,
|
| | | regionHazardInformId: item.value.id,
|
| | | }
|
| | | })
|
| | | const regionUsersList = realNames.map(item => {
|
| | | return {
|
| | | userId: item.id,
|
| | | }
|
| | | })
|
| | | const params = {
|
| | | task,
|
| | | standard,
|
| | | regionList,
|
| | | regionUsersList,
|
| | | }
|
| | | if (this.isUpdate) {
|
| | | // 更新
|
| | | params.id = id
|
| | | this.$http.update(params).then((res) => {
|
| | | if (res.statusMsg === 'ok') {
|
| | | this.closeForm()
|
| | | this.getLists()
|
| | | this.$message.success('更新成功!')
|
| | | } else {
|
| | | this.$message.warning(res.statusMsg)
|
| | | }
|
| | | })
|
| | | } else {
|
| | | // 添加
|
| | | this.$http.insert(params).then((res) => {
|
| | | if (res.statusMsg === 'ok') {
|
| | | this.closeForm()
|
| | | this.getLists()
|
| | | this.$message.success('添加成功!')
|
| | | } else {
|
| | | this.$message.warning(res.statusMsg)
|
| | | }
|
| | | })
|
| | | }
|
| | | })
|
| | | }, 1000),
|
| | | addPath() {
|
| | | this.ruleForm.paths.push({
|
| | | value: ''
|
| | | })
|
| | | },
|
| | | delPath(item) {
|
| | | var index = this.ruleForm.paths.indexOf(item)
|
| | | if (index !== -1) {
|
| | | this.ruleForm.paths.splice(index, 1)
|
| | | }
|
| | | },
|
| | | pageChange() {
|
| | | this.getLists()
|
| | | },
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | @import '@/style/layout-main.scss';
|
| | |
|
| | | .divider {
|
| | | position: relative;
|
| | | margin-bottom: 30px;
|
| | | text-indent: 10px;
|
| | | color: #fff;
|
| | | border-left: 3px solid #18F6F8;
|
| | |
|
| | | &::after {
|
| | | content: "";
|
| | | position: absolute;
|
| | | left: 0;
|
| | | bottom: -8px;
|
| | | width: 100%;
|
| | | padding: 20px 0;
|
| | | border-bottom: 1px solid #0C4D6F;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | </div>
|
| | | <div class="header_item">
|
| | | <el-button icon="el-icon-search" v-permission="'search'" @click="queryReset">查询</el-button>
|
| | | <el-button class="search_btn" icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button>
|
| | | <el-button icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button>
|
| | | </div>
|
| | | </div>
|
| | |
|
| | |
| | | {name: "区域颜色", key: "regionColor"},
|
| | | {
|
| | | operation: true, name: "操作", width: 140, value: [
|
| | | {name: "修改", class: "table_btn", permission: "update", handleRow: this.updateRow},
|
| | | {name: "删除", class: "delete_btn", permission: "delete", handleRow: this.deleteRow},
|
| | | {name: "修改", permission: "update", handleRow: this.updateRow},
|
| | | {name: "删除", permission: "delete", handleRow: this.deleteRow},
|
| | | ]
|
| | | },
|
| | | ]
|