|
@@ -460,6 +460,7 @@ export default class extends Vue {
|
|
|
private showChooseProject = false;
|
|
private showChooseProject = false;
|
|
|
private showProjectPopover = false;
|
|
private showProjectPopover = false;
|
|
|
created() {
|
|
created() {
|
|
|
|
|
+ this.getServiceCode();
|
|
|
// 图片头
|
|
// 图片头
|
|
|
if (window.location.href.indexOf('aidesign.') > -1) {
|
|
if (window.location.href.indexOf('aidesign.') > -1) {
|
|
|
this.imgBaseUrl = 'https://aidesign.nipponpaint.com.cn'
|
|
this.imgBaseUrl = 'https://aidesign.nipponpaint.com.cn'
|
|
@@ -524,7 +525,24 @@ export default class extends Vue {
|
|
|
);
|
|
);
|
|
|
this.color_selItem = selectedItem || null;
|
|
this.color_selItem = selectedItem || null;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ private getServiceCode() {
|
|
|
|
|
+ let that = this;
|
|
|
|
|
+ const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
|
|
+ let serviceCodeArray = [];
|
|
|
|
|
+ // if (userInfo && userInfo.loginTypeList && userInfo.loginTypeList.length > 0) {
|
|
|
|
|
+ // userInfo.loginTypeList.forEach(item => {
|
|
|
|
|
+ // if (item.shopType == 'stoneLikePaint') {
|
|
|
|
|
+ // item.shopList.forEach(childItem => {
|
|
|
|
|
+ // serviceCodeArray.push(childItem.shop_code);
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ if (userInfo && userInfo.ServiceCode) {
|
|
|
|
|
+ serviceCodeArray = userInfo.ServiceCode.split(',').map(item => item.trim()).filter(item => item !== '');
|
|
|
|
|
+ }
|
|
|
|
|
+ that.serviceCodeArray = serviceCodeArray;
|
|
|
|
|
+ }
|
|
|
// 处理文件选择(对应 beforeRead + afterRead)
|
|
// 处理文件选择(对应 beforeRead + afterRead)
|
|
|
handleFileChange(e) {
|
|
handleFileChange(e) {
|
|
|
const file = e.target.files[0]; // 获取选中的文件
|
|
const file = e.target.files[0]; // 获取选中的文件
|
|
@@ -622,6 +640,8 @@ export default class extends Vue {
|
|
|
}
|
|
}
|
|
|
GetReadStateFn() {
|
|
GetReadStateFn() {
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
|
|
+ const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
|
|
+ // formData.append('WXuserid', userInfo.loginName);
|
|
|
const outsideType_val = this.activeName === '外墙质感' ? 0 : 1;
|
|
const outsideType_val = this.activeName === '外墙质感' ? 0 : 1;
|
|
|
formData.append('outsideType', outsideType_val);
|
|
formData.append('outsideType', outsideType_val);
|
|
|
GetReadState(formData).then(response => {
|
|
GetReadState(formData).then(response => {
|
|
@@ -633,6 +653,8 @@ export default class extends Vue {
|
|
|
|
|
|
|
|
UpdateReadStateFn() {
|
|
UpdateReadStateFn() {
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
|
|
+ // const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
|
|
+ // formData.append('WXuserid', userInfo.loginName);
|
|
|
const outsideType_val = this.activeName === '外墙质感' ? 0 : 1;
|
|
const outsideType_val = this.activeName === '外墙质感' ? 0 : 1;
|
|
|
formData.append('outsideType', outsideType_val);
|
|
formData.append('outsideType', outsideType_val);
|
|
|
UpdateReadState(formData).then(response => { });
|
|
UpdateReadState(formData).then(response => { });
|
|
@@ -886,6 +908,7 @@ export default class extends Vue {
|
|
|
this.$toast.fail('请选择图片');
|
|
this.$toast.fail('请选择图片');
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+ // const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
if (this.activeName === '外墙质感') {
|
|
if (this.activeName === '外墙质感') {
|
|
|
// 如果字典渲染有误,不让提交;墙面工艺、电子色卡都为必填项且没有不需要;
|
|
// 如果字典渲染有误,不让提交;墙面工艺、电子色卡都为必填项且没有不需要;
|
|
@@ -922,6 +945,46 @@ export default class extends Vue {
|
|
|
formData.append('DesignStyle', "CHANGE_COLOR");
|
|
formData.append('DesignStyle', "CHANGE_COLOR");
|
|
|
formData.append('Color', this.color_selValue)
|
|
formData.append('Color', this.color_selValue)
|
|
|
}
|
|
}
|
|
|
|
|
+ // 其他项
|
|
|
|
|
+ // let serviceCodeArray = [];
|
|
|
|
|
+ // if (userInfo.loginTypeList.length > 0) {
|
|
|
|
|
+ // userInfo.loginTypeList.forEach(item => {
|
|
|
|
|
+ // if (item.shopType == 'stoneLikePaint') {
|
|
|
|
|
+ // item.shopList.forEach(childItem => {
|
|
|
|
|
+ // serviceCodeArray.push(childItem.shop_code);
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ // // 用户企微ID
|
|
|
|
|
+ // formData.append('WXuserid', userInfo.loginName);
|
|
|
|
|
+ // 项目ID
|
|
|
|
|
+ if (this.checkedProject && this.projectBoxShow == true && this.activeName === '外墙质感') {
|
|
|
|
|
+ formData.append('projectid', this.checkedProject.projectid);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 企微类型
|
|
|
|
|
+ // formData.append('wecomType', 5);
|
|
|
|
|
+ // // 服务商代码
|
|
|
|
|
+ // if (serviceCodeArray.length > 0) {
|
|
|
|
|
+ // formData.append('serivceCode', serviceCodeArray.join(','));
|
|
|
|
|
+ // }
|
|
|
|
|
+ // // 姓名
|
|
|
|
|
+ // formData.append('userName', userInfo.userName);
|
|
|
|
|
+ // const customerCode = userInfo.sysUserExt && userInfo.sysUserExt.customerCode ? userInfo.sysUserExt.customerCode : '';
|
|
|
|
|
+ // // 经销商代码
|
|
|
|
|
+ // formData.append('distributorCode', customerCode);
|
|
|
|
|
+ // //原服务商用户、新增经销商用户
|
|
|
|
|
+ // // 大区
|
|
|
|
|
+ // formData.append('regionName', userInfo.officeName || '');
|
|
|
|
|
+ // // 公司名称
|
|
|
|
|
+ // formData.append('companyName', userInfo.companyName || '');
|
|
|
|
|
+ // // 员工号
|
|
|
|
|
+ // let employeeID = userInfo.sysUserExt && userInfo.sysUserExt.sapEmployeeId ? userInfo.sysUserExt.sapEmployeeId : '';
|
|
|
|
|
+ // formData.append('employeeID', employeeID);
|
|
|
|
|
+ // //销售部---原服务商用户、新增经销商用户
|
|
|
|
|
+ // formData.append('salesDepartment', userInfo.subOfficeName || '');
|
|
|
|
|
+ // // 销售部ID
|
|
|
|
|
+ // formData.append('salesDepartmentCode', userInfo.subOfficeCode || '');
|
|
|
// 样式图片
|
|
// 样式图片
|
|
|
if (this.Userfile1) {
|
|
if (this.Userfile1) {
|
|
|
formData.append('Userfile1', this.Userfile1);
|
|
formData.append('Userfile1', this.Userfile1);
|
|
@@ -999,6 +1062,8 @@ export default class extends Vue {
|
|
|
private updateCheckedProjectLastNum(projectId) {
|
|
private updateCheckedProjectLastNum(projectId) {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
|
|
+ // const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
|
|
+ formData.append('ServiceCode', that.serviceCodeArray.join(','));
|
|
|
formData.append('projectid', projectId);
|
|
formData.append('projectid', projectId);
|
|
|
GetProjectlist(formData).then(response => {
|
|
GetProjectlist(formData).then(response => {
|
|
|
if (response.StatusCode == 200) {
|
|
if (response.StatusCode == 200) {
|
|
@@ -1013,6 +1078,8 @@ export default class extends Vue {
|
|
|
GetProjectListFn() {
|
|
GetProjectListFn() {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
|
|
+ const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
|
|
+ formData.append('ServiceCode', that.serviceCodeArray.join(','));
|
|
|
if (that.projectSearchValue.trim().length != 0) {
|
|
if (that.projectSearchValue.trim().length != 0) {
|
|
|
formData.append('keyWord', that.projectSearchValue);
|
|
formData.append('keyWord', that.projectSearchValue);
|
|
|
}
|
|
}
|
|
@@ -1046,7 +1113,18 @@ export default class extends Vue {
|
|
|
private getPicList() {
|
|
private getPicList() {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
|
|
|
+ // const userInfo: any = JSON.parse(window.localStorage.getItem("userInfoV1")!);
|
|
|
|
|
+ // let roleIdArray = [];
|
|
|
|
|
+ // if (userInfo.roles.length > 0) {
|
|
|
|
|
+ // userInfo.roles.forEach(item => {
|
|
|
|
|
+ // roleIdArray.push(item.roleId);
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ // formData.append('roleIds', roleIdArray.join(','));
|
|
|
|
|
+ // formData.append('WXuserid', userInfo.loginName);
|
|
|
formData.append('baseType', 0);
|
|
formData.append('baseType', 0);
|
|
|
|
|
+ // formData.append('wecomType', this.wecomType);
|
|
|
|
|
+ // const isRefresh = userInfo.isRefreshProvider === '是' ? 1 : 0;//0=否 1=是
|
|
|
const isRefreshProvider = window.localStorage.getItem("isRefreshProvider");
|
|
const isRefreshProvider = window.localStorage.getItem("isRefreshProvider");
|
|
|
const isRefresh = isRefreshProvider === '是' ? 1 : 0;//0=否 1=是
|
|
const isRefresh = isRefreshProvider === '是' ? 1 : 0;//0=否 1=是
|
|
|
formData.append('isRefresh', isRefresh);
|
|
formData.append('isRefresh', isRefresh);
|
|
@@ -1215,35 +1293,48 @@ export default class extends Vue {
|
|
|
|
|
|
|
|
.history-section {
|
|
.history-section {
|
|
|
margin: 20px 0;
|
|
margin: 20px 0;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .history-header {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- gap: 12px;
|
|
|
|
|
- padding: 12px 16px;
|
|
|
|
|
- background-color: #ffffff;
|
|
|
|
|
- border-radius: 18px;
|
|
|
|
|
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
|
|
|
- border: 1px solid #e9ecef;
|
|
|
|
|
- /* margin-bottom: 10px; */
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.history-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ padding: 12px 16px;
|
|
|
|
|
+ background-color: #ffffff;
|
|
|
|
|
+ border-radius: 18px;
|
|
|
|
|
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
|
|
|
+ border: 1px solid #e9ecef;
|
|
|
|
|
+ /* margin-bottom: 10px; */
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .icon-clock {
|
|
|
|
|
- font-size: 12px;
|
|
|
|
|
- margin-right: 8px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.icon-clock {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .history-header span {
|
|
|
|
|
- font-weight: 500;
|
|
|
|
|
- color: #EC8868;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.history-header span {
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ color: #EC8868;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .history-header .badge-dot {
|
|
|
|
|
- width: 5px;
|
|
|
|
|
- height: 5px;
|
|
|
|
|
- background-color: #ff4d4f;
|
|
|
|
|
- border-radius: 50%;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.history-header .badge-dot {
|
|
|
|
|
+ width: 5px;
|
|
|
|
|
+ height: 5px;
|
|
|
|
|
+ background-color: #ff4d4f;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.history-content {
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ background-color: white;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ border: 1px dashed #ddd;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.no-history {
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ font-size: 12px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.image-selection {
|
|
.image-selection {
|