'123'
This commit is contained in:
parent
04d517dc29
commit
4278bd577a
|
@ -0,0 +1,15 @@
|
||||||
|
package com.ruoyi.common.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target({ElementType.FIELD})
|
||||||
|
@Documented
|
||||||
|
public @interface DataName {
|
||||||
|
String name() default ""; // 字段名称
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读取枚举内容转义表达式 (如: 0=男,1=女,2=未知)
|
||||||
|
*/
|
||||||
|
String readConverterExp() default "";
|
||||||
|
}
|
|
@ -73,6 +73,11 @@
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>1.18.26</version>
|
<version>1.18.26</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus</artifactId>
|
||||||
|
<version>2.0.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
package com.ruoyi.system.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class SysChangeRecord {
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date changeTime;
|
||||||
|
|
||||||
|
private String createName;
|
||||||
|
|
||||||
|
private String changeField;
|
||||||
|
|
||||||
|
private String beforeChange;
|
||||||
|
|
||||||
|
private String afterChange;
|
||||||
|
|
||||||
|
private String typeId;
|
||||||
|
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
public Date getChangeTime() {
|
||||||
|
return changeTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChangeTime(Date changeTime) {
|
||||||
|
this.changeTime = changeTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreateName() {
|
||||||
|
return createName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateName(String createName) {
|
||||||
|
this.createName = createName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChangeField() {
|
||||||
|
return changeField;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChangeField(String changeField) {
|
||||||
|
this.changeField = changeField;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBeforeChange() {
|
||||||
|
return beforeChange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeforeChange(String beforeChange) {
|
||||||
|
this.beforeChange = beforeChange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAfterChange() {
|
||||||
|
return afterChange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAfterChange(String afterChange) {
|
||||||
|
this.afterChange = afterChange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTypeId() {
|
||||||
|
return typeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTypeId(String typeId) {
|
||||||
|
this.typeId = typeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRemark() {
|
||||||
|
return remark;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRemark(String remark) {
|
||||||
|
this.remark = remark;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.ruoyi.system.mapper;
|
||||||
|
|
||||||
|
import com.ruoyi.system.domain.SysChangeRecord;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更日志记录Mapper
|
||||||
|
*/
|
||||||
|
public interface SysChangeRecordMapper {
|
||||||
|
/**
|
||||||
|
* 插入
|
||||||
|
* @param changeRecord
|
||||||
|
*/
|
||||||
|
public void insertChangeRecord(SysChangeRecord changeRecord);
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?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="com.ruoyi.system.mapper.SysChangeRecordMapper">
|
||||||
|
<insert id="insertChangeRecord" parameterType="SysChangeRecord">
|
||||||
|
insert into sys_change_record
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="changeTime != null">changeTime,</if>
|
||||||
|
<if test="createName != null and createName != ''">createName,</if>
|
||||||
|
<if test="changeField != null and changeField != ''">changeField,</if>
|
||||||
|
<if test="beforeChange != null and beforeChange != ''">beforeChange,</if>
|
||||||
|
<if test="afterChange != null and afterChange != ''">afterChange,</if>
|
||||||
|
<if test="typeId != null and typeId != ''">typeId,</if>
|
||||||
|
<if test="remark != null and remark != ''">remark,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="changeTime != null">#{changeTime},</if>
|
||||||
|
<if test="createName != null and createName != ''">#{createName},</if>
|
||||||
|
<if test="changeField != null and changeField != ''">#{changeField},</if>
|
||||||
|
<if test="beforeChange != null and beforeChange != ''">#{beforeChange},</if>
|
||||||
|
<if test="afterChange != null and afterChange != ''">#{afterChange},</if>
|
||||||
|
<if test="typeId != null and typeId != ''">#{typeId},</if>
|
||||||
|
<if test="remark != null and remark != ''">#{remark},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
</mapper>
|
|
@ -20,16 +20,6 @@
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--<el-form-item label="提交状态" prop="quotApprovalStatus">
|
|
||||||
<el-select v-model="queryParams.quotApprovalStatus" placeholder="请选择提交状态" clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.rb_quot_approval_status"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>-->
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
@ -38,7 +28,7 @@
|
||||||
|
|
||||||
<el-table width="100%" v-loading="loading" :data="quotsList" :row-class-name="rowQuotsIndex">
|
<el-table width="100%" v-loading="loading" :data="quotsList" :row-class-name="rowQuotsIndex">
|
||||||
<el-table-column fixed="left" label="序号" align="center" prop="index" width="50"/>
|
<el-table-column fixed="left" label="序号" align="center" prop="index" width="50"/>
|
||||||
<el-table-column fixed="left" label="操作" align="center" width="60" class-name="small-padding fixed-width" v-if="checkRole(['SALES_MAN'])">
|
<el-table-column fixed="left" label="操作" align="center" width="60" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" @click="handleDeleteClick(scope.row)">删除</el-button>
|
<el-button type="text" @click="handleDeleteClick(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -49,11 +39,6 @@
|
||||||
<el-link :underline="false" type="primary" @click="handleDetail(scope.row)">{{scope.row.quotCode}}</el-link>
|
<el-link :underline="false" type="primary" @click="handleDetail(scope.row)">{{scope.row.quotCode}}</el-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!--<el-table-column fixed="left" label="提交状态" align="center" prop="quotApprovalStatus" width="150px">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<dict-tag :options="dict.type.rb_quot_approval_status" :value="scope.row.quotApprovalStatus"/>
|
|
||||||
</template>
|
|
||||||
</el-table-column>-->
|
|
||||||
<el-table-column label="报价客户" width="250" align="center" prop="quotCustomer" />
|
<el-table-column label="报价客户" width="250" align="center" prop="quotCustomer" />
|
||||||
<el-table-column label="报价项目" width="250" align="center" prop="quotProject" />
|
<el-table-column label="报价项目" width="250" align="center" prop="quotProject" />
|
||||||
<el-table-column label="总价" width="100" align="center" prop="totalPrice" />
|
<el-table-column label="总价" width="100" align="center" prop="totalPrice" />
|
||||||
|
@ -105,7 +90,7 @@
|
||||||
<el-input style="width:65px" v-model="perc" size="small" @blur="changeData" @keyup.enter.native="changeData"></el-input>
|
<el-input style="width:65px" v-model="perc" size="small" @blur="changeData" @keyup.enter.native="changeData"></el-input>
|
||||||
<el-input style="width:65px;margin-left: 5px" v-model="perc2" size="small" @blur="changeData" @keyup.enter.native="changeData"></el-input>
|
<el-input style="width:65px;margin-left: 5px" v-model="perc2" size="small" @blur="changeData" @keyup.enter.native="changeData"></el-input>
|
||||||
<!--总价:<span style="color:red;font-size: 15px">{{sumSelectedResultData}} 元</span>-->
|
<!--总价:<span style="color:red;font-size: 15px">{{sumSelectedResultData}} 元</span>-->
|
||||||
<el-select v-model="form.rbDateUid" style="margin-left: 20px;width: 235px;" :disabled="selectedResultData.length==0 || form.quotApprovalStatus!=0">
|
<el-select v-model="form.rbDateUid" style="margin-left: 20px;width: 235px;" :disabled="selectedResultData.length==0">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in versionList"
|
v-for="item in versionList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
@ -114,13 +99,22 @@
|
||||||
@click.native="selectRbDate(item.value)"/>
|
@click.native="selectRbDate(item.value)"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button style="float: right;margin-left: 5px;" size="small" type="success" icon="el-icon-document" @click="handleMadeQuotClick" :disabled="selectedResultData.length==0 || madeQuotDis">生成报价单</el-button>
|
<el-button style="float: right;margin-left: 5px;" size="small" type="success" icon="el-icon-document" @click="handleMadeQuotClick" :disabled="selectedResultData.length==0 || madeQuotDis">生成报价单</el-button>
|
||||||
<el-button style="float: right;" size="small" type="warning" icon="el-icon-folder" @click="handleSaveOtherClick" v-if="this.form.quotApprovalStatus==0" :disabled="selectedResultData.length==0">另存为</el-button>
|
<el-button style="float: right;" size="small" type="warning" icon="el-icon-folder" @click="handleSaveOtherClick">另存为</el-button>
|
||||||
<el-button style="float: right;" size="small" type="warning" icon="el-icon-folder" @click="handleSaveClick" v-if="this.form.quotApprovalStatus==0" :disabled="selectedResultData.length==0">保存</el-button>
|
<el-button style="float: right;" size="small" type="warning" icon="el-icon-folder" @click="handleSaveClick">保存</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteQuotMaterial">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
<el-button size="mini" type="info" plain icon="el-icon-upload2" @click="handleExport">导出</el-button>
|
<el-button size="mini" type="info" plain icon="el-icon-upload2" @click="handleExport">导出</el-button>
|
||||||
<el-table v-loading="selectedResultLoading" width="100%;" :row-class-name="selectedResultIndex" :data="selectedResultData" style="margin-top: 10px">
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-table v-loading="selectedResultLoading" width="100%;" :row-class-name="selectedResultIndex" :data="selectedResultData" @selection-change="handleQuotMaterialSelectionChange" style="margin-top: 10px">
|
||||||
|
<el-table-column type="selection" width="50" align="center"/>
|
||||||
<el-table-column fixed="left" label="" align="center" prop="index" width="50"/>
|
<el-table-column fixed="left" label="" align="center" prop="index" width="50"/>
|
||||||
<el-table-column label="版本uid" align="center" prop="uid_0" v-if="false"/>
|
<el-table-column label="版本uid" align="center" prop="uid_0" v-if="false"/>
|
||||||
<el-table-column fixed="left" label="产品型号" align="center" prop="name_0" width="180"/>
|
<el-table-column fixed="left" label="产品型号" align="center" prop="name_0" width="180"/>
|
||||||
|
@ -148,9 +142,6 @@
|
||||||
<el-table-column label="总价" align="center" prop="allPrice"/>
|
<el-table-column label="总价" align="center" prop="allPrice"/>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!--<div slot="footer" class="dialog-footer" v-if="this.form.quotApprovalStatus==0">
|
|
||||||
<el-button type="primary" @click="handleCommitClick">提交报价</el-button>
|
|
||||||
</div>-->
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total>0"
|
||||||
|
@ -178,8 +169,7 @@
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
import { checkRole } from "@/utils/permission"; // 权限判断函数
|
import {toDecimal, versionList,listQuots,getQuotDetail,deleteQuots,updateSelectedResultData,madeQuot,saveQuot } from "@/api/redBook/redBook";
|
||||||
import {toDecimal, versionList,listQuots,getQuotDetail,deleteQuots,updateSelectedResultData,madeQuot,saveQuot,commitQuot } from "@/api/redBook/redBook";
|
|
||||||
/** 弹窗放大、拖拽 */
|
/** 弹窗放大、拖拽 */
|
||||||
import elDragDialog from "@/directive/dialog/dragDialog";
|
import elDragDialog from "@/directive/dialog/dragDialog";
|
||||||
|
|
||||||
|
@ -199,6 +189,8 @@
|
||||||
total: 0,
|
total: 0,
|
||||||
//报价单数据
|
//报价单数据
|
||||||
quotsList: [],
|
quotsList: [],
|
||||||
|
// 子表选中数据
|
||||||
|
checkedQuotMaterial: [],
|
||||||
// 时间范围
|
// 时间范围
|
||||||
dateRange: [],
|
dateRange: [],
|
||||||
//调价日期
|
//调价日期
|
||||||
|
@ -212,7 +204,7 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
//表单
|
//表单
|
||||||
form: {quotApprovalStatus:''},
|
form: {},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
quotCustomer: [
|
quotCustomer: [
|
||||||
|
@ -242,15 +234,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
/*const roles = this.$store.state.user.roles;
|
|
||||||
if(roles && roles.indexOf('QUOT') !== -1 ){//报价组默认查看待审核 单据
|
|
||||||
this.queryParams.quotApprovalStatus = '1';
|
|
||||||
}*/
|
|
||||||
this.getList();
|
this.getList();
|
||||||
this.getVersionList();
|
this.getVersionList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
checkRole,
|
|
||||||
/** 查询报价单列表 */
|
/** 查询报价单列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
@ -478,6 +465,24 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/** 报价单-产品删除按钮操作 */
|
||||||
|
handleDeleteQuotMaterial() {
|
||||||
|
if (this.checkedQuotMaterial.length == 0) {
|
||||||
|
this.$modal.msgError("请先选择要删除的报价单-产品数据");
|
||||||
|
} else {
|
||||||
|
const quotMaterialList = this.selectedResultData;
|
||||||
|
const checkedQuotMaterial = this.checkedQuotMaterial;
|
||||||
|
this.selectedResultData = quotMaterialList.filter(function(item) {
|
||||||
|
return checkedQuotMaterial.indexOf(item.index) == -1
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 复选框选中数据 */
|
||||||
|
handleQuotMaterialSelectionChange(selection) {
|
||||||
|
this.checkedQuotMaterial = selection.map(item => item.index)
|
||||||
|
},
|
||||||
|
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
getTodayCourse(){
|
getTodayCourse(){
|
||||||
const myDate = new Date();
|
const myDate = new Date();
|
||||||
|
|
Loading…
Reference in New Issue