This commit is contained in:
xd 2024-05-15 15:22:34 +08:00
parent f38e49bb48
commit 68e3dd3086
10 changed files with 230 additions and 163 deletions

View File

@ -1,5 +1,5 @@
#for tests only !
#Tue May 07 17:18:59 CST 2024
#Wed May 15 15:21:44 CST 2024
jco.destination.pool_capacity=10
jco.client.lang=ZH
jco.client.ashost=172.19.0.120

View File

@ -6,6 +6,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.constant.WebsocketConst;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.UUID;
@ -92,6 +93,17 @@ public class CustomerController extends BaseController
util.exportExcel(response, list, "客户管理数据");
}
/**
* 状态修改
*/
@PreAuthorize("@ss.hasPermi('customer:customer:list')")
@Log(title = "客户状态修改", businessType = BusinessType.UPDATE)
@PutMapping("/changCusStatus")
public AjaxResult changCusStatus(@RequestBody Customer customer)
{
return toAjax(customerService.changCusStatus(customer));
}
/**
* 获取客户管理详细信息
*/

View File

@ -58,4 +58,11 @@ public interface ICustomerService
* @return 结果
*/
public int deleteCustomerByCusId(String cusId);
/**
* 状态修改
* @param customer
* @return
*/
int changCusStatus(Customer customer);
}

View File

@ -112,6 +112,16 @@ public class CustomerServiceImpl implements ICustomerService
return customerMapper.deleteCustomerByCusId(cusId);
}
/**
* 状态修改
* @param customer
* @return
*/
@Override
public int changCusStatus(Customer customer) {
return customerMapper.updateCustomer(customer);
}
/**
* 新增银行信息
*

View File

@ -55,6 +55,7 @@
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
"splitpanes": "^2.4.1",
"vant": "^2.13.2",
"vue": "2.6.12",
"vue-count-to": "1.0.13",

View File

@ -17,6 +17,19 @@ export function getCustomer(cusId) {
})
}
// 客户状态修改
export function changCusStatus(cusId, cusState) {
const data = {
cusId,
cusState
}
return request({
url: '/customer/customer/changCusStatus',
method: 'put',
data: data
})
}
// 新增客户管理
export function addCustomer(data) {
return request({

View File

@ -19,6 +19,9 @@ import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
import { Splitpanes, Pane } from 'splitpanes'
import 'splitpanes/dist/splitpanes.css'
// 分页组件
import Pagination from "@/components/Pagination";
// 自定义表格工具组件
@ -60,6 +63,8 @@ Vue.component('Editor', Editor)
Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)
Vue.component('Splitpanes', Splitpanes)
Vue.component('Pane', Pane)
Vue.use(directive)
Vue.use(plugins)

View File

@ -131,7 +131,13 @@
</el-table-column>
<el-table-column label="状态" align="center" prop="cusState">
<template slot-scope="scope">
<dict-tag :options="dict.type.common_state" :value="scope.row.cusState"/>
<el-switch
v-model="scope.row.cusState"
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
:disabled="!checkRole(['ITZX'])"
></el-switch>
</template>
</el-table-column>
</el-table>
@ -544,7 +550,7 @@
}
</style>
<script>
import { listCustomer, getCustomer, delCustomer, addCustomer, updateCustomer, commitCustomer,returnCustomer, commitSAPCustomer, qccListCustomer } from "@/api/customer/customer";
import { listCustomer, getCustomer, delCustomer,changCusStatus, addCustomer, updateCustomer, commitCustomer,returnCustomer, commitSAPCustomer, qccListCustomer } from "@/api/customer/customer";
import { checkPermi, checkRole } from "@/utils/permission"; //
import { bankCodeList,getCountrys,getIndustryCode,getLanguage,getPaymentTerms,getSalesOrganization,getDistributionChannel,getSalesTerritory,getSaleOffice,getTax,getReconciliationAccount } from "@/api/common/sapRfc";// sap-rfc
@ -835,6 +841,17 @@ export default {
this.single = selection.length!==1
this.multiple = !selection.length
},
//
handleStatusChange(row) {
let text = row.cusState === "0" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.cusName + '"吗?').then(function() {
return changCusStatus(row.cusId, row.cusState);
}).then(() => {
this.$modal.msgSuccess(text + "成功");
}).catch(function() {
row.cusState = row.cusState === "0" ? "1" : "0";
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();

View File

@ -14,164 +14,166 @@
</el-col>
</el-row>
<el-row :gutter="5" class="mt5">
<el-col :span="10">
<el-card id="scroll" class="box-card scrollable" :style="{'overflow': 'auto','max-height': scrollableHeight,'height': scrollableHeight}">
<el-form-item label="目录:">
<el-link :underline="false" class="block" :type="selectedModelTag==item.name_0?'warning':'primary'" @click="selModelTag(item)" v-for="(item, index) in modelList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="备注:" v-if="showRemarkList">
<div class="text-content">
<div v-if="expandedIndex === id">
<el-button type="text" style="float: right" @click="toggleText(-1)">收起</el-button>
<div v-for="(item, index) in remarkList" :key="index" style="line-height: 25px">
{{index+1}}{{item.remark_0}}
</div>
</div>
<div v-else>
<el-button type="text" style="float: right" @click="toggleText(id)">更多</el-button>
<div class="text-preview">
<splitpanes class="default-theme" split="vertical">
<pane>
<el-card id="scroll" class="box-card scrollable" :style="{'overflow': 'auto','max-height': scrollableHeight,'height': scrollableHeight}">
<el-form-item label="目录:">
<el-link :underline="false" class="block" :type="selectedModelTag==item.name_0?'warning':'primary'" @click="selModelTag(item)" v-for="(item, index) in modelList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="备注:" v-if="showRemarkList">
<div class="text-content">
<div v-if="expandedIndex === id">
<el-button type="text" style="float: right" @click="toggleText(-1)">收起</el-button>
<div v-for="(item, index) in remarkList" :key="index" style="line-height: 25px">
{{index+1}}{{item.remark_0}}
</div>
</div>
<div v-else>
<el-button type="text" style="float: right" @click="toggleText(id)">更多</el-button>
<div class="text-preview">
<div v-for="(item, index) in remarkList" :key="index" style="line-height: 25px">
{{index+1}}{{item.remark_0}}
</div>
</div>
</div>
</div>
</div>
</el-form-item>
<el-form-item label="型号:" v-if="showXinghList">
<el-link :underline="false" class="block" :type="selectedXinghTag==item.name_0?'warning':'primary'" plain @click="selXinghTag(item)" v-for="(item, index) in xinghList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="子类:" v-if="showZlList">
<el-link :underline="false" class="block" size="mini" :type="selectedZlTag==item.name_0?'warning':'primary'" plain @click="selZlTag(item)" v-for="(item, index) in zlList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="衍生型号:" v-if="showYsxhList">
<el-link :underline="false" class="block" :type="selectedYsxhTag==item.name_0?'warning':'primary'" plain @click="selYsxhTag(item)" v-for="(item, index) in ysxhList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="截面:" v-if="showJmList">
<el-link :underline="false"class="block" :type="selectedJmTag==item.section?'warning':'primary'" plain @click="selJmTag(item)" v-for="(item, index) in jmList" :key="index">{{item.section}}</el-link>
</el-form-item>
</el-form-item>
<el-form-item label="型号:" v-if="showXinghList">
<el-link :underline="false" class="block" :type="selectedXinghTag==item.name_0?'warning':'primary'" plain @click="selXinghTag(item)" v-for="(item, index) in xinghList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="子类:" v-if="showZlList">
<el-link :underline="false" class="block" size="mini" :type="selectedZlTag==item.name_0?'warning':'primary'" plain @click="selZlTag(item)" v-for="(item, index) in zlList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="衍生型号:" v-if="showYsxhList">
<el-link :underline="false" class="block" :type="selectedYsxhTag==item.name_0?'warning':'primary'" plain @click="selYsxhTag(item)" v-for="(item, index) in ysxhList" :key="index">{{item.name_0}}</el-link>
</el-form-item>
<el-form-item label="截面:" v-if="showJmList">
<el-link :underline="false"class="block" :type="selectedJmTag==item.section?'warning':'primary'" plain @click="selJmTag(item)" v-for="(item, index) in jmList" :key="index">{{item.section}}</el-link>
</el-form-item>
<el-table width="100%" v-loading="searchResultLoading" ref="searchResultTable" :data="searchResultPagedData" @row-dblclick="handleRowDblclick">
<el-table-column label="版本uid" align="center" prop="uid_0" v-if="false"/>
<el-table-column label="产品型号" align="center" prop="name_0" width="180"/>
<el-table-column label="型号" align="center" prop="model" width="180" v-if="false"/>
<el-table-column label="规格" align="center" prop="spec" width="180" v-if="false"/>
<el-table-column label="电压" align="center" prop="voltage"/>
<el-table-column label="红本价(元)" align="center" prop="price"/>
<el-table-column label="单位" align="center" prop="stu"/>
</el-table>
<pagination
v-show="searchResultTotal>0"
:total="searchResultTotal"
:page.sync="searchResultCurrentPage"
:limit.sync="searchResultPageSize"
@size-change="handleSearchResultSizeChange"
@current-change="handleSearchResultCurrentChange"
:layout="'total, prev, pager, next'"
/>
</el-card>
</el-col>
<el-col :span="14">
<el-card id="scroll" class="box-card scrollable" :style="{'overflow': 'auto','max-height': scrollableHeight,'height': scrollableHeight}">
<el-row :gutter="8">
<el-col :span="12">
<el-form-item label="询价单位" prop="quotCustomer" style="margin-bottom: 10px;">
<el-input v-model="form.quotCustomer" placeholder="请输入询价单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目名称" prop="quotProject" style="margin-bottom: 10px;">
<el-input v-model="form.quotProject" placeholder="请输入项目名称"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="联系人" prop="quotLxr" style="margin-bottom: 10px;">
<el-input v-model="form.quotLxr" placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="quotLxrdh" style="margin-bottom: 10px;">
<el-input v-model="form.quotLxrdh" placeholder="请输入联系电话"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总价" style="margin-bottom: 10px;">
<el-input class="totalPrice-input" v-model="sumSelectedResultData"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24">
<el-form-item label="总金额" prop="totalPrice" v-if="false">
<el-input v-model="form.totalPrice"/>
</el-form-item>
<el-form-item label="设置折扣率" label-width="100px" style="margin-bottom: 10px;">
<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>
<!--总价:<span style="color:red;font-size: 15px">{{sumSelectedResultData}} </span>-->
<el-select v-model="form.rbDateUid" style="width: 235px;float: right" :disabled="selectedResultData.length==0">
<el-option
v-for="item in versionList"
:key="item.value"
:label="item.label"
:value="item.value"
@click.native="selectRbDate(item.value)"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-table width="100%" v-loading="searchResultLoading" ref="searchResultTable" :data="searchResultPagedData" @row-dblclick="handleRowDblclick">
<el-table-column label="版本uid" align="center" prop="uid_0" v-if="false"/>
<el-table-column label="产品型号" align="center" prop="name_0"/>
<el-table-column label="型号" align="center" prop="model" v-if="false"/>
<el-table-column label="规格" align="center" prop="spec" v-if="false"/>
<el-table-column label="电压" align="center" prop="voltage"/>
<el-table-column label="红本价(元)" align="center" prop="price"/>
<el-table-column label="单位" align="center" prop="stu"/>
</el-table>
<pagination
v-show="searchResultTotal>0"
:total="searchResultTotal"
:page.sync="searchResultCurrentPage"
:limit.sync="searchResultPageSize"
@size-change="handleSearchResultSizeChange"
@current-change="handleSearchResultCurrentChange"
:layout="'total, prev, pager, next'"
/>
</el-card>
</pane>
<pane>
<el-card id="scroll" class="box-card scrollable" :style="{'overflow': 'auto','max-height': scrollableHeight,'height': scrollableHeight}">
<el-row :gutter="8">
<el-col :span="12">
<el-form-item label="询价单位" prop="quotCustomer" style="margin-bottom: 10px;">
<el-input v-model="form.quotCustomer" placeholder="请输入询价单位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目名称" prop="quotProject" style="margin-bottom: 10px;">
<el-input v-model="form.quotProject" placeholder="请输入项目名称"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="8">
<el-form-item label="联系人" prop="quotLxr" style="margin-bottom: 10px;">
<el-input v-model="form.quotLxr" placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话" prop="quotLxrdh" style="margin-bottom: 10px;">
<el-input v-model="form.quotLxrdh" placeholder="请输入联系电话"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总价" style="margin-bottom: 10px;">
<el-input class="totalPrice-input" v-model="sumSelectedResultData"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24">
<el-form-item label="总金额" prop="totalPrice" v-if="false">
<el-input v-model="form.totalPrice"/>
</el-form-item>
<el-form-item label="设置折扣率" label-width="100px" style="margin-bottom: 10px;">
<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>
<!--总价:<span style="color:red;font-size: 15px">{{sumSelectedResultData}} </span>-->
<el-select v-model="form.rbDateUid" style="width: 235px;float: right" :disabled="selectedResultData.length==0">
<el-option
v-for="item in versionList"
:key="item.value"
:label="item.label"
:value="item.value"
@click.native="selectRbDate(item.value)"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-table v-loading="selectedResultLoading" width="100%;" :height="tableHeight" :row-class-name="selectedResultIndex" style="margin-top:5px" ref="selectedResultTable" :data="selectedResultData">
<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">
<template slot-scope="scope">
<el-button type="text" @click="handleDeleteClick(scope.$index)">删除</el-button>
</template>
</el-table-column>
<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 label="型号" align="center" prop="name_1" width="180" v-if="false"/>
<el-table-column label="规格" align="center" prop="spec" width="180" v-if="false"/>
<el-table-column label="电压" align="center" prop="voltage" width="100"/>
<el-table-column label="红本价(元)" align="center" prop="price" width="120"/>
<el-table-column label="单位" align="center" prop="stu" width="90">
<template slot-scope="scope">
<el-select v-model="scope.row.stu" @change="selectTypeChange(scope.row)">
<el-option label="KM" value="KM"/>
<el-option label="M" value="M"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="一次折扣" align="center" prop="per" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.per" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="二次折扣" align="center" prop="per2" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.per2" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="单价" align="center" prop="setPrice" width="120"/>
<el-table-column label="数量调整" align="center" prop="count" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.count" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="总价" align="center" prop="allPrice" width="120"/>
</el-table>
<!--<pagination
v-show="selectedResultTotal>0"
:total="selectedResultTotal"
:page.sync="selectedResultCurrentPage"
:page-sizes="[10,20,30,40]"
:limit.sync="selectedResultPageSize"
@size-change="handleSelectedResultSizeChange"
@current-change="handleSelectedResultCurrentChange"
/>-->
</el-card>
</el-col>
<el-table v-loading="selectedResultLoading" width="100%;" :height="tableHeight" :row-class-name="selectedResultIndex" style="margin-top:5px" ref="selectedResultTable" :data="selectedResultData">
<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">
<template slot-scope="scope">
<el-button type="text" @click="handleDeleteClick(scope.$index)">删除</el-button>
</template>
</el-table-column>
<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 label="型号" align="center" prop="name_1" v-if="false"/>
<el-table-column label="规格" align="center" prop="spec" v-if="false"/>
<el-table-column label="电压" align="center" prop="voltage"/>
<el-table-column label="红本价(元)" align="center" prop="price"/>
<el-table-column label="单位" align="center" prop="stu">
<template slot-scope="scope">
<el-select v-model="scope.row.stu" @change="selectTypeChange(scope.row)">
<el-option label="KM" value="KM"/>
<el-option label="M" value="M"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="一次折扣" align="center" prop="per">
<template slot-scope="scope">
<el-input v-model="scope.row.per" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="二次折扣" align="center" prop="per2">
<template slot-scope="scope">
<el-input v-model="scope.row.per2" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="单价" align="center" prop="setPrice"/>
<el-table-column label="数量调整" align="center" prop="count">
<template slot-scope="scope">
<el-input v-model="scope.row.count" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="总价" align="center" prop="allPrice"/>
</el-table>
<!--<pagination
v-show="selectedResultTotal>0"
:total="selectedResultTotal"
:page.sync="selectedResultCurrentPage"
:page-sizes="[10,20,30,40]"
:limit.sync="selectedResultPageSize"
@size-change="handleSelectedResultSizeChange"
@current-change="handleSelectedResultCurrentChange"
/>-->
</el-card>
</pane>
</splitpanes>
</el-row>
</el-form>
</div>

View File

@ -39,11 +39,11 @@
<el-link :underline="false" type="primary" @click="handleDetail(scope.row)">{{scope.row.quotCode}}</el-link>
</template>
</el-table-column>
<el-table-column label="报价客户" width="200" align="center" prop="quotCustomer" />
<el-table-column label="报价项目" width="200" align="center" prop="quotProject" />
<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="100" align="center" prop="totalPrice" />
<el-table-column label="联系人" width="100" align="center" prop="quotLxr" />
<el-table-column label="联系人电话" width="150" align="center" prop="quotLxrdh" />
<el-table-column label="联系人" align="center" prop="quotLxr" />
<el-table-column label="联系人电话" width="100" align="center" prop="quotLxrdh" />
<el-table-column label="创建日期" width="180" align="center" prop="createTime" />
<el-table-column label="更新日期" width="180" align="center" prop="updateTime" />
</el-table>
@ -86,8 +86,8 @@
<el-input v-model="form.totalPrice"/>
</el-form-item>
<el-form-item label="设置折扣率" label-width="100px">
<el-input style="width:65px" v-model="perc" size="small" @blur="changeData"></el-input>
<el-input style="width:65px;margin-left: 5px" v-model="perc2" size="small" @blur="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>
<!--总价:<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">
<el-option
@ -114,18 +114,18 @@
<el-table-column label="单位" align="center" prop="stu"/>
<el-table-column label="一次折扣" align="center" prop="per">
<template slot-scope="scope">
<el-input v-model="scope.row.per" @blur="changeRowData"/>
<el-input v-model="scope.row.per" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="二次折扣" align="center" prop="per2">
<template slot-scope="scope">
<el-input v-model="scope.row.per2" @blur="changeRowData"/>
<el-input v-model="scope.row.per2" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="单价" align="center" prop="setPrice"/>
<el-table-column label="数量调整" align="center" prop="count">
<template slot-scope="scope">
<el-input v-model="scope.row.count" @blur="changeRowData"/>
<el-input v-model="scope.row.count" @blur="changeRowData" @keyup.enter.native="changeRowData"/>
</template>
</el-table-column>
<el-table-column label="总价" align="center" prop="allPrice"/>