Merge remote-tracking branch 'origin/master'
This commit is contained in:
+2
@@ -119,6 +119,7 @@ public class SysCategoryController {
|
||||
public Result<SysCategory> add(@RequestBody SysCategory sysCategory) {
|
||||
Result<SysCategory> result = new Result<SysCategory>();
|
||||
try {
|
||||
sysCategory.setName(sysCategory.getName().replace(" ",""));
|
||||
sysCategoryService.addSysCategory(sysCategory);
|
||||
result.success("添加成功!");
|
||||
} catch (Exception e) {
|
||||
@@ -141,6 +142,7 @@ public class SysCategoryController {
|
||||
if(sysCategoryEntity==null) {
|
||||
result.error500("未找到对应实体");
|
||||
}else {
|
||||
sysCategory.setName(sysCategory.getName().replace(" ",""));
|
||||
sysCategoryService.updateSysCategory(sysCategory);
|
||||
result.success("修改成功!");
|
||||
}
|
||||
|
||||
+2
@@ -408,6 +408,8 @@ public class SysDictController {
|
||||
|
||||
sysDict.setCreateTime(new Date());
|
||||
sysDict.setDelFlag(CommonConstant.DEL_FLAG_0);
|
||||
|
||||
sysDict.setDictName(sysDict.getDictName().replace(" ",""));
|
||||
sysDictService.save(sysDict);
|
||||
}
|
||||
result.success("保存成功!");
|
||||
|
||||
+2
@@ -100,6 +100,7 @@ public class SysDictItemController {
|
||||
}
|
||||
}else {
|
||||
try {
|
||||
sysDictItem.setItemText(sysDictItem.getItemText().replace(" ",""));
|
||||
sysDictItem.setCreateTime(new Date());
|
||||
sysDictItem.setDelFlag(CommonConstant.DEL_FLAG_0);
|
||||
sysDictItem.setItemValue(UUID.randomUUID().toString().replace("-", ""));
|
||||
@@ -135,6 +136,7 @@ public class SysDictItemController {
|
||||
result.error500("固定字段,不可删除");
|
||||
} else {
|
||||
sysDictItem.setUpdateTime(new Date());
|
||||
sysDictItem.setItemText(sysDictItem.getItemText().replace(" ",""));
|
||||
boolean ok = sysDictItemService.updateById(sysDictItem);
|
||||
if (ok) {
|
||||
result.success("编辑成功!");
|
||||
|
||||
+24
-12
@@ -1,25 +1,26 @@
|
||||
package com.jero.modules.project.controller;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.project.entity.ProjectNameInfoEO;
|
||||
import com.jero.modules.project.service.IProjectNameInfoEOService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.project.entity.ProjectNameInfoEO;
|
||||
import com.jero.modules.project.service.IProjectNameInfoEOService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@@ -167,4 +168,15 @@ public class ProjectNameInfoEOController extends JeroController<ProjectNameInfoE
|
||||
return super.importExcel(request, response, ProjectNameInfoEO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 接收space系统数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目名信息表-space")
|
||||
@ApiOperation(value="项目名信息表-space", notes="项目名信息表-space")
|
||||
@RequestMapping(value = "/getSign", method = RequestMethod.POST)
|
||||
public String getSign() {
|
||||
return projectNameInfoEOService.getYapiInfo();
|
||||
}
|
||||
}
|
||||
|
||||
+10
-8
@@ -1,21 +1,18 @@
|
||||
package com.jero.modules.project.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
@@ -66,4 +63,9 @@ public class ProjectNameInfoEO implements Serializable {
|
||||
@ApiModelProperty(value = "项目名称")
|
||||
private java.lang.String projectName;
|
||||
|
||||
/**年款名称*/
|
||||
@Excel(name = "年款名称", width = 15)
|
||||
@ApiModelProperty(value = "年款名称")
|
||||
private java.lang.String yearName;
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -58,4 +58,6 @@ public interface IProjectNameInfoEOService extends IService<ProjectNameInfoEO> {
|
||||
* @return
|
||||
*/
|
||||
List<ProjectNameInfoEO> queryList();
|
||||
|
||||
String getYapiInfo();
|
||||
}
|
||||
|
||||
+181
-3
@@ -1,12 +1,15 @@
|
||||
package com.jero.modules.project.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.modules.project.entity.ProjectNameInfoEO;
|
||||
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
|
||||
import com.jero.modules.project.service.IProjectNameInfoEOService;
|
||||
import com.jero.modules.space.service.SpaceServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 项目名信息表
|
||||
@@ -16,7 +19,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
*/
|
||||
@Service
|
||||
public class ProjectNameInfoEOServiceImpl extends ServiceImpl<ProjectNameInfoEOMapper, ProjectNameInfoEO> implements IProjectNameInfoEOService {
|
||||
|
||||
@Autowired
|
||||
private SpaceServiceImpl spaceService;
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -86,4 +90,178 @@ public class ProjectNameInfoEOServiceImpl extends ServiceImpl<ProjectNameInfoEOM
|
||||
public List<ProjectNameInfoEO> queryList() {
|
||||
return list();
|
||||
}
|
||||
@Override
|
||||
public String getYapiInfo(){
|
||||
String sign ="";
|
||||
try {
|
||||
// sign = spaceService.getSign();
|
||||
|
||||
String resultData = "{\n" +
|
||||
" \"resultData\": [\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"ES8_00\",\n" +
|
||||
" \"modelName\": \"ES8\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npa\",\n" +
|
||||
" \"hardwarePltName\": \"NPA\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt1\",\n" +
|
||||
" \"softwarePltName\": \"NT1\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.2\",\n" +
|
||||
" \"yearName\": \"G1.2\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.3\",\n" +
|
||||
" \"yearName\": \"G1.3\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f\",\n" +
|
||||
" \"yearName\": \"G1.F\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f.e\",\n" +
|
||||
" \"yearName\": \"G1.F.E\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_my2018\",\n" +
|
||||
" \"yearName\": \"MY2018\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.5\",\n" +
|
||||
" \"yearName\": \"G1.5\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"FURY_00\",\n" +
|
||||
" \"modelName\": \"FURY\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npa\",\n" +
|
||||
" \"hardwarePltName\": \"NPA\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt1\",\n" +
|
||||
" \"softwarePltName\": \"NT1\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.2\",\n" +
|
||||
" \"yearName\": \"G1.2\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.3\",\n" +
|
||||
" \"yearName\": \"G1.3\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f\",\n" +
|
||||
" \"yearName\": \"G1.F\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.6\",\n" +
|
||||
" \"yearName\": \"G1.6\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.5\",\n" +
|
||||
" \"yearName\": \"G1.5\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"FORCE_00\",\n" +
|
||||
" \"modelName\": \"FORCE\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npb\",\n" +
|
||||
" \"hardwarePltName\": \"NPB\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt2\",\n" +
|
||||
" \"softwarePltName\": \"NT2\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.2\",\n" +
|
||||
" \"yearName\": \"G1.2\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.3\",\n" +
|
||||
" \"yearName\": \"G1.3\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.f\",\n" +
|
||||
" \"yearName\": \"G1.F\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.6\",\n" +
|
||||
" \"yearName\": \"G1.6\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.5\",\n" +
|
||||
" \"yearName\": \"G1.5\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"Gemini_00\",\n" +
|
||||
" \"modelName\": \"Gemini\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npa\",\n" +
|
||||
" \"hardwarePltName\": \"NPA\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt2\",\n" +
|
||||
" \"softwarePltName\": \"NT2\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"modelCode\": \"Pegasus_00\",\n" +
|
||||
" \"modelName\": \"Pegasus\",\n" +
|
||||
" \"hardwarePltCode\": \"mhp_npc\",\n" +
|
||||
" \"hardwarePltName\": \"NPC\",\n" +
|
||||
" \"softwarePltCode\": \"msp_nt2\",\n" +
|
||||
" \"softwarePltName\": \"NT2\",\n" +
|
||||
" \"modelYearInfoList\": [\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1\",\n" +
|
||||
" \"yearName\": \"G1.1\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_g1.1.e\",\n" +
|
||||
" \"yearName\": \"G1.1.E\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"yearCode\": \"mp_G1.1.RH\",\n" +
|
||||
" \"yearName\": \"G1.1.RH\"\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"resultCode\": \"WL-0000\",\n" +
|
||||
" \"resultDesc\": \"Success\"\n" +
|
||||
"}";
|
||||
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}return sign;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.jero.modules.space.service;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public interface ISpaceService {
|
||||
|
||||
/**
|
||||
* 获取token
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
// String getTenantAccessToken() throws IOException;
|
||||
|
||||
/**
|
||||
* 批量发送消息
|
||||
* @param userIds 用户域账号,对应数据库字段:third_id
|
||||
* @param message 消息内容
|
||||
* @param title 消息类型
|
||||
* @param backUrl 消息内容中的跳转链接
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
// String batchSendMessage(String[] userIds, String message, String title, String backUrl) throws IOException;
|
||||
|
||||
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package com.jero.modules.space.service;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SpaceServiceImpl implements ISpaceService {
|
||||
@Value("${Space.appId}")
|
||||
private String appId;
|
||||
|
||||
@Value("${Space.appSecret}")
|
||||
private String appSecret;
|
||||
|
||||
@Value("${Space.domainUrl}")
|
||||
private String domainUrl;
|
||||
|
||||
|
||||
/**
|
||||
* 生成签名
|
||||
*@param map 参数
|
||||
*@param secretKey 加签密钥
|
||||
*@return String
|
||||
*@throws Exception if secretKey is Empty
|
||||
*/
|
||||
public static String sign(Map<String, Object> map, String secretKey) throws Exception {
|
||||
if (StringUtils.isEmpty(secretKey)) {
|
||||
throw new Exception("secretKey can not be empty");
|
||||
}
|
||||
StringBuilder contentBuffer = new StringBuilder();
|
||||
Object[] signParamArray = map.keySet().toArray();
|
||||
Arrays.sort(signParamArray);
|
||||
for (Object key : signParamArray) {
|
||||
Object value = map.get(key);
|
||||
if (!"digest".equals(key) && value != null && !value.equals("")) {
|
||||
contentBuffer.append(key + "=" + value + "&");
|
||||
}
|
||||
}
|
||||
String sign = contentBuffer.substring(0, contentBuffer.length() - 1) + secretKey;
|
||||
return Md5(sign, "utf-8");
|
||||
}
|
||||
|
||||
public static String Md5(String plainText, String encoding) throws Exception {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
md.update(plainText.getBytes(encoding));
|
||||
byte b[] = md.digest();
|
||||
return byte2hex(b);
|
||||
}
|
||||
|
||||
public static String byte2hex(byte[] b) {
|
||||
String hs = "";
|
||||
String stmp = "";
|
||||
for (int n = 0; n < b.length; n++) {
|
||||
stmp = (Integer.toHexString(b[n] & 0XFF));
|
||||
if (stmp.length() == 1)
|
||||
hs = hs + "0" + stmp;
|
||||
else
|
||||
hs = hs + stmp;
|
||||
}
|
||||
return hs.toUpperCase();
|
||||
}
|
||||
|
||||
public String getSign() throws Exception {
|
||||
Map<String,Object> paramMap = new HashMap<String, Object>();
|
||||
paramMap.put("bizData", "{\"module\":\"GRP\"}");//业务参数
|
||||
paramMap.put("timestamp", String.valueOf(System.currentTimeMillis()));//请求时间
|
||||
paramMap.put("appId", appId);//在Program Space中注册的appId
|
||||
String sign = sign(paramMap,appSecret);//签名字符串
|
||||
paramMap.put("sign",sign);//签名字符串
|
||||
|
||||
// String response = HttpUtil.post(domainUrl, paramMap);
|
||||
String response = HttpRequest.post(domainUrl)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.form(paramMap)//表单内容
|
||||
.timeout(20000)//超时,毫秒
|
||||
.execute().body();
|
||||
|
||||
// String response = HttpRequestUtil.getResponseOfPOST(domainUrl, headerMap, null);
|
||||
return response;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+2
-1
@@ -85,7 +85,7 @@ public class OnlCgformTagServiceImpl extends ServiceImpl<OnlCgformTagMapper, Onl
|
||||
}else {//设置文档拆分-表id
|
||||
onlCgformTag.setCgformHeadId(FileTableIdEnum.FILE_SPLIT_ID.getValue());
|
||||
}
|
||||
|
||||
onlCgformTag.setDbFieldTxt(onlCgformTag.getDbFieldTxt().replace(" ",""));
|
||||
onlCgformTag.setDbIsKey(Integer.valueOf(YesOrNoEnum.NO.getValue()));
|
||||
onlCgformTag.setDbIsNull(Integer.valueOf(YesOrNoEnum.YES.getValue()));
|
||||
//onlCgformTag.setDbPointLength(0); //默认为0
|
||||
@@ -147,6 +147,7 @@ public class OnlCgformTagServiceImpl extends ServiceImpl<OnlCgformTagMapper, Onl
|
||||
onlCgformTag.setDbLength(2000); // 多选默认设置为2000,即可选择2000/36=55个属性
|
||||
}
|
||||
}
|
||||
onlCgformTag.setDbFieldTxt(onlCgformTag.getDbFieldTxt().replace(" ",""));
|
||||
onlCgformTag.setIsDelete(CommonConstant.DEL_FLAG_0);
|
||||
onlCgformTag.setDbIsKey(Integer.valueOf(YesOrNoEnum.NO.getValue()));
|
||||
onlCgformTag.setDbIsNull(Integer.valueOf(YesOrNoEnum.YES.getValue()));
|
||||
|
||||
@@ -404,3 +404,28 @@ opensso:
|
||||
clientId: 100679
|
||||
clientSecret: CDf2D9404C6ac1B0f7c3e3845ae0282a
|
||||
redirectUri: http%3A%2F%2F139.9.235.66%3A8010
|
||||
|
||||
|
||||
---
|
||||
## space系统
|
||||
Space:
|
||||
# dev
|
||||
# appId: PMP16517425636482D4A
|
||||
# appSecret: 6a689580-bf3a-47ee-b3c5-a16d2312760d
|
||||
# domainUrl: https://api-plm-portal-dev.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
# test
|
||||
appId: PMP16521484118670676
|
||||
appSecret: 4cf1b271-0c12-443d-964c-e61726b4ae0e
|
||||
domainUrl: https://api-plm-portal-test.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
# stg
|
||||
# appId: PMP1652840272275F20C
|
||||
# appSecret: fbf65763-a273-4df5-8a91-ef4db6d6e315
|
||||
# domainUrl: https://api-plm-portal-stg.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
# prod
|
||||
# appId: PMP1652840319523B159
|
||||
# appSecret: d3bf6e69-0726-42ee-91bd-0441a8f6ccdf
|
||||
# domainUrl: https://api-plm-portal.nioint.com/api/v1/plm-portal-middle-integration
|
||||
|
||||
|
||||
@@ -563,6 +563,7 @@ module.exports = {
|
||||
batSetting: 'batch setting',
|
||||
selectDirectoryTerms: 'please select the directory location to add terms',
|
||||
StandardBreakdown: 'Standard breakdown',
|
||||
OnlyWordItem: 'Non GSO file type, PDF file cannot be split',
|
||||
OnlyWord: 'only word files can be imported',
|
||||
labelAreaDeleted: 'If it is deleted, all label items under the display area will be deleted',
|
||||
searchInResults: 'Search in results',
|
||||
@@ -855,4 +856,5 @@ module.exports = {
|
||||
confirmOperation:'Confirm Operation',
|
||||
sponsorReview:'Sponsor review',
|
||||
fillInProjectDelivery:'Fill in project delivery',
|
||||
Resubmit:'Resubmit',
|
||||
}
|
||||
@@ -569,6 +569,7 @@ module.exports = {
|
||||
documentSplitTemplate: '文档拆分模板',
|
||||
batSetting: '批量设置',
|
||||
selectDirectoryTerms: '请选择添加条款的目录位置',
|
||||
OnlyWordItem: '非GSO文件类型,不能拆分pdf文件',
|
||||
OnlyWord: '只能导入word文件',
|
||||
labelAreaDeleted: '若进行删除,则该展示区域下标签项都将被删除',
|
||||
StandardBreakdown: '标准分解单',
|
||||
@@ -860,4 +861,5 @@ module.exports = {
|
||||
confirmOperation:'确认操作',
|
||||
sponsorReview:'发起人审查',
|
||||
fillInProjectDelivery:'填写工程交付',
|
||||
Resubmit:'重新提交',
|
||||
}
|
||||
@@ -0,0 +1,247 @@
|
||||
<template>
|
||||
<div class='diolag-area'>
|
||||
<a-spin :spinning='spinLoading'>
|
||||
<a-form-model
|
||||
class='tag-module'
|
||||
ref='ruleForm'
|
||||
:model='form'
|
||||
:rules='rules'
|
||||
:label-col='labelCol'
|
||||
:wrapper-col='wrapperCol'
|
||||
>
|
||||
<a-row :gutter='24'>
|
||||
<a-col :span='9'>
|
||||
<a-form-model-item ref='paramsTemplateName' :label="$t('fullName')" prop='paramsTemplateName'>
|
||||
<a-input
|
||||
v-model='form.realname' />
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
<a-col :span='9'>
|
||||
<a-form-model-item ref='paramsTemplateName' :label="$t('accountNumber')" prop='paramsTemplateName'>
|
||||
<a-input
|
||||
v-model='form.workNo' />
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
<a-col :span='6'>
|
||||
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
|
||||
<a-button class='box-button' style='margin-left: 8px' @click='searchReset'>{{ $t('reset') }}</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-spin>
|
||||
<a-table
|
||||
class='table-area'
|
||||
ref='table'
|
||||
size='middle'
|
||||
rowKey='id'
|
||||
:columns='columns'
|
||||
:dataSource='areaTable'
|
||||
:pagination='false'
|
||||
:loading='loading'
|
||||
:scroll='{x: 600}'
|
||||
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
|
||||
@change='handleTableChange'>
|
||||
</a-table>
|
||||
<div class="page">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
@change="pageOnChange"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
<div class='drawer-bootom-button'>
|
||||
<a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>
|
||||
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('submit') }}</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
|
||||
import axios from 'axios'
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
export default {
|
||||
name: 'diolagArea',
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
token:Vue.ls.get(ACCESS_TOKEN),
|
||||
title: this.$t('add'),
|
||||
total: 0,
|
||||
selectedRowKeysDate: {},
|
||||
loading: false,
|
||||
editId: '',
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('fullName'),
|
||||
dataIndex: 'realname',
|
||||
key: 'showArea',
|
||||
align: 'center',
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('accountNumber'),
|
||||
align: 'center',
|
||||
dataIndex: 'username',
|
||||
ellipsis: true
|
||||
}
|
||||
],
|
||||
newVisible: false,
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 7 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 14 }
|
||||
},
|
||||
form: {},
|
||||
rules: {},
|
||||
areaTable: [],
|
||||
flag: false, //表单提交标识
|
||||
spinLoading: false,
|
||||
confirmLoading: false,
|
||||
selectedRowKeys: [],
|
||||
pageNo: 1,
|
||||
pageSize: 10
|
||||
}
|
||||
},
|
||||
props: {
|
||||
selectedRowKeysArray: {
|
||||
type: String,
|
||||
default: '',
|
||||
require: true
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.loadData()
|
||||
},
|
||||
methods: {
|
||||
pageOnChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
this.loadData()
|
||||
},
|
||||
SizeChange(page, pageSize) {
|
||||
this.pageNo = 1
|
||||
this.pageSize = pageSize
|
||||
this.loadData()
|
||||
},
|
||||
loadData() {
|
||||
this.loading = true
|
||||
let params = {
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize,
|
||||
...this.form
|
||||
}
|
||||
getAction(`sys/user/page`, params).then(res => {
|
||||
if (res.success) {
|
||||
this.areaTable = [...res.result.records]
|
||||
this.total = res.result.total
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
searchQuery() {
|
||||
this.loadData()
|
||||
},
|
||||
searchReset() {
|
||||
this.form = {}
|
||||
this.loadData()
|
||||
},
|
||||
handleCancel() {
|
||||
this.$emit('areaVisible', false)
|
||||
},
|
||||
onSelectChange(selectedRowKeys, selectedRowKeysDate) {
|
||||
this.selectedRowKeysDate = selectedRowKeysDate
|
||||
this.selectedRowKeys = selectedRowKeys
|
||||
},
|
||||
handleTableChange(val) {
|
||||
},
|
||||
//新增
|
||||
handleSubmit() {
|
||||
let _this = this
|
||||
if (this.selectedRowKeys.length == 0) {
|
||||
this.$message.warning(this.$t('pleaseSelectData'))
|
||||
} else if (this.selectedRowKeys.length > 1) {
|
||||
this.$message.warning(this.$t('OnlyOneSelected'))
|
||||
} else {
|
||||
let param = {ids: this.selectedRowKeysArray, projectId: this.$route.query.id, dre:this.selectedRowKeysDate[0].username }
|
||||
axios({
|
||||
url: '/jero-boot/params/collectManifest/updateDreBatch',
|
||||
method: 'post',
|
||||
data: param,
|
||||
transformRequest: [function (data) {
|
||||
let ret = ''
|
||||
for (let it in data) {
|
||||
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
|
||||
}
|
||||
return ret
|
||||
}],
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'X-Access-Token':_this.token
|
||||
}
|
||||
})
|
||||
.then( (res) =>{
|
||||
if (res.data.success) {
|
||||
_this.$message.success(res.data.result)
|
||||
_this.loadData()
|
||||
this.$emit('areaVisibleAssignedbyflag', false)
|
||||
}else{
|
||||
_this.$message.warning(res.data.result)
|
||||
}
|
||||
})
|
||||
.catch( (error) =>{
|
||||
console.log(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang='less' scoped>
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.diolag-area {
|
||||
.table-area {
|
||||
margin: 20px 0;
|
||||
|
||||
.action-edit {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.table-del {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
.drawer-bootom-button{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
<style lang='less'>
|
||||
.area-module {
|
||||
.ant-modal-wrap {
|
||||
.ant-modal {
|
||||
.ant-modal-content {
|
||||
.ant-modal-footer {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.page{
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
@@ -103,19 +103,18 @@ export default {
|
||||
},
|
||||
handleTableChange(val) {
|
||||
},
|
||||
//新增
|
||||
//保存
|
||||
handleSubmit() {
|
||||
let _this = this
|
||||
let param = {ids: this.selectedRowKeysArray, deadline: `${this.pickerDate}`, }
|
||||
postAction('/params/collectManifest/updateDeadlineBatch', param).then((res) => {
|
||||
if (res.success) {
|
||||
this.loadData()
|
||||
this.$emit('areaVisibleTaskCutOffTimeflag', false)
|
||||
this.$message.success(res.message)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
})
|
||||
postAction('/params/collectManifest/updateDeadlineBatch', param).then((res) => {
|
||||
if (res.success) {
|
||||
this.$emit('areaVisibleTaskCutOffTimeflag', false)
|
||||
this.$message.success(res.message)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
})
|
||||
},
|
||||
onChange(val) {
|
||||
this.pickerDate = moment(val).format('YYYY-MM-DD HH:mm:ss')
|
||||
|
||||
@@ -220,36 +220,70 @@
|
||||
if (file.file_name) {
|
||||
let name = file.file_name.split('.')
|
||||
let nameSuffix = name[name.length - 1]
|
||||
if (nameSuffix.toLowerCase() === 'doc'||nameSuffix.toLowerCase() === 'docx'||nameSuffix.toLowerCase() === 'pdf') {
|
||||
let params = {
|
||||
attId: file.id,
|
||||
title: file.title,
|
||||
fileName:file.file_name,
|
||||
serialNumber: file.serial_number,
|
||||
connectId: file.connect_id,
|
||||
fileGroup: this.fileGroup,
|
||||
fileType:file.text_info
|
||||
if(this.fileGroup === 'GSO') {
|
||||
if (nameSuffix.toLowerCase() === 'doc'||nameSuffix.toLowerCase() === 'docx'||nameSuffix.toLowerCase() === 'pdf') {
|
||||
let params = {
|
||||
attId: file.id,
|
||||
title: file.title,
|
||||
fileName:file.file_name,
|
||||
serialNumber: file.serial_number,
|
||||
connectId: file.connect_id,
|
||||
fileGroup: this.fileGroup,
|
||||
fileType:file.text_info
|
||||
}
|
||||
|
||||
if(!this.submitFlag){
|
||||
this.submitFlag=true
|
||||
postAction(`split/sarFileSplitInfo/add`, params).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
eventBUs.$emit('searchReset')
|
||||
this.visible = false;
|
||||
this.$emit('visible', false)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(()=>{
|
||||
this.submitFlag =false
|
||||
|
||||
})
|
||||
this.$emit('exportVisible',true)
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(this.$t('OnlyWord'))
|
||||
}
|
||||
|
||||
if(!this.submitFlag){
|
||||
this.submitFlag=true
|
||||
postAction(`split/sarFileSplitInfo/add`, params).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
eventBUs.$emit('searchReset')
|
||||
this.visible = false;
|
||||
this.$emit('visible', false)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(()=>{
|
||||
this.submitFlag =false
|
||||
|
||||
})
|
||||
this.$emit('exportVisible',true)
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(this.$t('OnlyWord'))
|
||||
if (nameSuffix.toLowerCase() === 'doc'||nameSuffix.toLowerCase() === 'docx') {
|
||||
let params = {
|
||||
attId: file.id,
|
||||
title: file.title,
|
||||
fileName:file.file_name,
|
||||
serialNumber: file.serial_number,
|
||||
connectId: file.connect_id,
|
||||
fileGroup: this.fileGroup,
|
||||
fileType:file.text_info
|
||||
}
|
||||
|
||||
if(!this.submitFlag){
|
||||
this.submitFlag=true
|
||||
postAction(`split/sarFileSplitInfo/add`, params).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(this.$t('OperationSuccessful'))
|
||||
eventBUs.$emit('searchReset')
|
||||
this.visible = false;
|
||||
this.$emit('visible', false)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(()=>{
|
||||
this.submitFlag =false
|
||||
|
||||
})
|
||||
this.$emit('exportVisible',true)
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(this.$t('OnlyWordItem'))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
:triggerChange="false" :dictCode="'state'"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
||||
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-col :md="12" :sm="24">
|
||||
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
|
||||
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
|
||||
@@ -265,8 +265,7 @@
|
||||
}
|
||||
|
||||
.title-text {
|
||||
width: 20%;
|
||||
min-width: 110px;
|
||||
width: 33px;
|
||||
color: #000F16;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
@@ -281,9 +280,8 @@
|
||||
|
||||
.box-input {
|
||||
display: inline-block;
|
||||
width: 70%;
|
||||
width: 100%;
|
||||
height: 38px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.box-button {
|
||||
|
||||
@@ -55,13 +55,17 @@
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text" :title="'WVTA ID'">WVTA ID</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="wvtaId">
|
||||
<a-input class="box-input"
|
||||
:disabled="false"
|
||||
v-model="formInline.wvtaId"
|
||||
:placeholder="$t('PleaseEnter')+'WVTA ID'"/>
|
||||
<a-form-model-item class="itemModel-multi" prop="region">
|
||||
<!-- <a-input class="box-input"-->
|
||||
<!-- :disabled="true"-->
|
||||
<!-- v-model="formInline.region_dictText"/>-->
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.region"
|
||||
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'region'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -117,6 +121,24 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('implementationCategory')">{{$t('implementationCategory')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="implementType">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.implementType"
|
||||
:disabled="disabled"
|
||||
@input="handleInput('implementType')"
|
||||
:placeholder="$t('PleaseSelect')+$t('implementationCategory')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'implement_type'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -134,8 +156,6 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -154,6 +174,21 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text" :title="'WVTA ID'">WVTA ID</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="wvtaId">
|
||||
<a-input class="box-input"
|
||||
:disabled="false"
|
||||
v-model="formInline.wvtaId"
|
||||
:placeholder="$t('PleaseEnter')+'WVTA ID'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -171,6 +206,39 @@
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationRank">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:disabled="disabled"
|
||||
@input="handleInput('attestationRank')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('applicableSupplement')">{{$t('applicableSupplement')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="applicableSupplement">
|
||||
<a-input class="box-input"
|
||||
:disabled="false"
|
||||
v-model="formInline.applicableSupplement"
|
||||
:placeholder="$t('PleaseEnter')+$t('applicableSupplement')"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
@@ -209,74 +277,6 @@
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationRank">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:disabled="disabled"
|
||||
@input="handleInput('attestationRank')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('implementationCategory')">{{$t('implementationCategory')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="implementType">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.implementType"
|
||||
:disabled="disabled"
|
||||
@input="handleInput('implementType')"
|
||||
:placeholder="$t('PleaseSelect')+$t('implementationCategory')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'implement_type'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-multi" prop="region">
|
||||
<!-- <a-input class="box-input"-->
|
||||
<!-- :disabled="true"-->
|
||||
<!-- v-model="formInline.region_dictText"/>-->
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.region"
|
||||
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'region'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('applicableSupplement')">{{$t('applicableSupplement')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="applicableSupplement">
|
||||
<a-input class="box-input"
|
||||
:disabled="false"
|
||||
v-model="formInline.applicableSupplement"
|
||||
:placeholder="$t('PleaseEnter')+$t('applicableSupplement')"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
total: 0,
|
||||
pageSize: 10,
|
||||
pageNo: 1,
|
||||
title: '新增',
|
||||
title: this.$t('newlyAdded'),
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('VirtualListName'),
|
||||
@@ -217,7 +217,7 @@
|
||||
},
|
||||
//添加
|
||||
handleAdd() {
|
||||
this.title = '新增'
|
||||
this.title = this.$t('newlyAdded')
|
||||
this.formInline = {}
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
@@ -249,7 +249,7 @@
|
||||
},
|
||||
//编辑
|
||||
edit(item) {
|
||||
this.title = '编辑'
|
||||
this.title = this.$t('edit')
|
||||
this.formInline = JSON.parse(JSON.stringify(item))
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
@@ -514,7 +514,7 @@
|
||||
.drawer-bootom-button {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
z-index:100;
|
||||
z-index: 100;
|
||||
width: 100%;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
padding: 10px 16px;
|
||||
|
||||
@@ -6,21 +6,21 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-content">
|
||||
<!-- v-if="$route.query.TaskKey == 'zrrclrw'"-->
|
||||
<div class="operator-text"
|
||||
@click="distributionEngineerClick($t('distributionEngineer'))">
|
||||
v-if="$route.query.TaskKey == 'zrrclrw' && this.$route.query.isDisplay"
|
||||
@click="distributionEngineerClick($t('distributionEngineer'),1)">
|
||||
<a-icon type="audit"/>
|
||||
{{ $t('distributionEngineer') }}
|
||||
</div>
|
||||
<div class="operator-text"
|
||||
v-if="$route.query.TaskKey == 'zrrclrw'"
|
||||
v-if="$route.query.TaskKey == 'zrrclrw' && this.$route.query.isDisplay"
|
||||
@click="reminderHandling()">
|
||||
<a-icon type="sound"/>
|
||||
{{ $t('reminderHandling') }}
|
||||
</div>
|
||||
<div class="operator-text"
|
||||
v-if="$route.query.TaskKey == 'zrrclrw' || $route.query.TaskKey == 'dreDispose'"
|
||||
@click="distributionEngineerClick($t('addFeedback'))">
|
||||
v-if="$route.query.TaskKey == 'zrrclrw' && this.$route.query.isDisplay"
|
||||
@click="distributionEngineerClick($t('addFeedback'),2)">
|
||||
<a-icon type="plus-circle"/>
|
||||
{{ $t('addFeedback') }}
|
||||
</div>
|
||||
@@ -384,7 +384,7 @@
|
||||
]
|
||||
},
|
||||
visibleDetails: false,
|
||||
columns: [
|
||||
columnsAll: [
|
||||
{
|
||||
title: this.$t('serialNumber'),
|
||||
dataIndex: 'index',
|
||||
@@ -448,12 +448,27 @@
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$route.query.isDisplay = JSON.parse(this.$route.query.isDisplay)
|
||||
this.getList()
|
||||
},
|
||||
computed: {
|
||||
columns() {
|
||||
let columnResult = JSON.parse(JSON.stringify(this.columnsAll))
|
||||
if (this.$route.query.TaskKey != 'zrrclrw' || !this.$route.query.isDisplay) {
|
||||
for (var i = 0; i < columnResult.length; i++) {
|
||||
if (columnResult[i].title === this.$t('operation')) {
|
||||
columnResult.splice(i, 1)
|
||||
i--
|
||||
}
|
||||
}
|
||||
}
|
||||
return columnResult
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
pageOnChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
this.getList()
|
||||
this.getDetails()
|
||||
},
|
||||
handleOk() {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
@@ -525,10 +540,13 @@
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
},
|
||||
distributionEngineerClick(title) {
|
||||
distributionEngineerClick(title, num) {
|
||||
this.title = title
|
||||
this.visible = true
|
||||
this.formInline = {}
|
||||
if (num == 1) {
|
||||
this.getReminderHandlingList(1)
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ruleForm.validateField()
|
||||
})
|
||||
@@ -563,9 +581,9 @@
|
||||
},
|
||||
reminderHandling() {
|
||||
this.visibleTable = true
|
||||
this.getReminderHandlingList()
|
||||
this.getReminderHandlingList(2)
|
||||
},
|
||||
getReminderHandlingList() {
|
||||
getReminderHandlingList(num) {
|
||||
this.loadingTable = true
|
||||
let query = {
|
||||
taskDefinitionKey: 'dreDispose',
|
||||
@@ -574,6 +592,24 @@
|
||||
getAction(this.url.queryByActiProcInstId, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.dataSourceTable = res.result || []
|
||||
if (num == 1) {
|
||||
this.distributionEngineerList = []
|
||||
let userName = []
|
||||
let userId = []
|
||||
if (this.dataSourceTable && this.dataSourceTable.length > 0) {
|
||||
this.dataSourceTable.forEach(val => {
|
||||
this.distributionEngineerList.push({
|
||||
name: val.userName,
|
||||
userId: val.userId,
|
||||
deliveryInstructions: val.deliveryInstructions
|
||||
})
|
||||
userName.push(val.userName)
|
||||
userId.push(val.userId)
|
||||
})
|
||||
}
|
||||
this.formInline.userId = userId.join(',')
|
||||
this.formInline.userName = userName.join(',')
|
||||
}
|
||||
this.loadingTable = false
|
||||
} else {
|
||||
this.dataSourceTable = []
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
<a-button class="header-btn termin" v-if="isSendBack" @click="sendBackCkick" type="danger" ghost>
|
||||
{{$t('sendBack')}}
|
||||
</a-button>
|
||||
<a-button class="header-btn submit" v-if="isAdopt" @click="adopt" type="primary">{{$t('adopt')}}</a-button>
|
||||
<a-button class="header-btn submit" v-if="isResubmit" @click="Resubmit" type="primary">{{$t('Resubmit')}}</a-button>
|
||||
<a-button class="header-btn submit" v-if="isAdopt" @click="adopt" type="primary">{{$t('submit')}}</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -59,7 +60,11 @@
|
||||
isAdopt: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
isResubmit:{
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
terminationProcess() {
|
||||
@@ -82,6 +87,10 @@
|
||||
},
|
||||
backTo() {
|
||||
|
||||
},
|
||||
Resubmit(){
|
||||
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
|
||||
this.$emit('Resubmit', handlingTime)
|
||||
},
|
||||
adopt() {
|
||||
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
|
||||
@@ -108,7 +117,8 @@
|
||||
.header-btn {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.header-btn:last-child{
|
||||
|
||||
.header-btn:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required" v-if="$route.query.TaskKey == 'zrrclrw'">*</span>
|
||||
<span class="Required" v-if="$route.query.TaskKey == 'zrrclrw' && $route.query.isDisplay">*</span>
|
||||
<span class="title-text-text" :title="$t('reviewResults')">{{$t('reviewResults')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="$route.query.TaskKey == 'fqrsh'?'':'reviewResult'">
|
||||
<a-form-model-item class="itemModel" :prop="!$route.query.isDisplay?'':'reviewResult'">
|
||||
<a-radio-group style="margin-top: 2px"
|
||||
:disabled="$route.query.TaskKey == 'fqrsh'?true:false"
|
||||
:disabled="!$route.query.isDisplay?true:false"
|
||||
class="box-input"
|
||||
v-model="formInline.reviewResult">
|
||||
<a-radio value="Compliance">
|
||||
@@ -42,7 +42,9 @@
|
||||
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="approvalOpinion">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')" v-model="formInline.approvalOpinion"
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')"
|
||||
:disabled="!$route.query.isDisplay?true:false"
|
||||
v-model="formInline.approvalOpinion"
|
||||
:rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -52,11 +54,12 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text-fq">
|
||||
<span class="Required" style="margin-right: 13px"></span>
|
||||
<span class="title-text-text" :title="$t('projectDeliveryDescription')">{{$t('projectDeliveryDescription')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<span class="text-header">
|
||||
爱上克里夫就的撒开了房间圣诞快乐房价士大夫打扫房间圣诞快乐房价是罚款乱收费考虑是否就但是考虑
|
||||
{{formInline.deliveryRequirements}}
|
||||
</span>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -66,11 +69,14 @@
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text-fq">
|
||||
<span class="Required" v-if="$route.query.isDisplay">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('feedbackFromTheEngineer')">{{$t('feedbackFromTheEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="engineerFeedbackContent">
|
||||
<a-form-model-item class="itemModel"
|
||||
:prop="!$route.query.isDisplay?'':'engineerFeedbackContent'">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackFromTheEngineer')"
|
||||
:disabled="!$route.query.isDisplay?true:false"
|
||||
v-model="formInline.engineerFeedbackContent"
|
||||
:rows="4"/>
|
||||
</a-form-model-item>
|
||||
@@ -81,10 +87,11 @@
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text-fq">
|
||||
<span class="title-text-text"
|
||||
:title="$t('Deliverables')">{{$t('Deliverables')}}</span>
|
||||
<span class="Required" v-if="this.$route.query.isDisplay">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('Deliverables')">{{$t('Deliverables')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<a-form-model-item class="itemModel" :prop="!this.$route.query.isDisplay?'':'fileId'">
|
||||
<a-button type="primary" class="button-text"
|
||||
@click="clickButtonToUpload('fileId')">
|
||||
{{ (formInline.fileId === 'null' || formInline.fileId === '' ||
|
||||
@@ -117,7 +124,7 @@
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<span class="text-header">
|
||||
爱上克里夫就的撒开了房间圣诞快乐房价士大夫打扫房间圣诞快乐房价是罚款乱收费考虑是否就但是考虑
|
||||
{{formInline.approvalOpinion}}
|
||||
</span>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -135,14 +142,18 @@
|
||||
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="approvalOpinion">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')" v-model="formInline.approvalOpinion"
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')"
|
||||
:disabled="!$route.query.isDisplay?true:false"
|
||||
v-model="formInline.approvalOpinion"
|
||||
:rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
|
||||
<uploadFile ref="uploadFile"
|
||||
:disabled="!$route.query.isDisplay?true:false"
|
||||
@uploadSuccess="uploadSuccess"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -155,7 +166,7 @@
|
||||
components: {
|
||||
uploadFile
|
||||
},
|
||||
props: ['queryBy'],
|
||||
props: ['queryBy', 'queryPersonInCharge'],
|
||||
data() {
|
||||
return {
|
||||
formInline: {},
|
||||
@@ -176,21 +187,40 @@
|
||||
}
|
||||
],
|
||||
engineerFeedbackContent: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('feedbackFromTheEngineer') + this.$t('cannotEmpty'),
|
||||
trigger: 'blur'
|
||||
},
|
||||
{
|
||||
max: 300,
|
||||
message: this.$t('feedbackFromTheEngineer') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
fileId: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('Deliverables') + this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$route.query.isDisplay = JSON.parse(this.$route.query.isDisplay)
|
||||
if (this.queryBy) {
|
||||
this.formInline.reviewResult = this.queryBy.reviewResult || undefined
|
||||
this.formInline.approvalOpinion = ''
|
||||
this.formInline = { ...this.formInline }
|
||||
}
|
||||
if (this.queryPersonInCharge) {
|
||||
this.formInline.deliveryRequirements = this.queryPersonInCharge.deliveryRequirements
|
||||
this.formInline.engineerFeedbackContent = this.queryPersonInCharge.engineerFeedbackContent
|
||||
this.formInline.fileId = this.queryPersonInCharge.fileId
|
||||
this.formInline = { ...this.formInline }
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
submit(callBack) {
|
||||
@@ -273,7 +303,7 @@
|
||||
}
|
||||
|
||||
.title-text-fq {
|
||||
width: 124px;
|
||||
width: 130px;
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
|
||||
@@ -22,20 +22,23 @@
|
||||
v-if="isDisplay"
|
||||
/>
|
||||
<reviewedByThePersonInCharge
|
||||
v-if="isDisplay"
|
||||
ref="reviewedByThePersonInChargeRef"
|
||||
:queryBy="queryBy"
|
||||
v-if="(isDisplay && $route.query.TaskKey == 'zrrclrw') ||
|
||||
(isDisplay && $route.query.TaskKey == 'fqrsh')"
|
||||
:queryPersonInCharge="queryPersonInCharge"
|
||||
/>
|
||||
<footerProcess
|
||||
v-if="isDisplay"
|
||||
:is-termination-process="isTerminationProcess"
|
||||
:is-adopt="isAdopt"
|
||||
:isSendBack="isSendBack"
|
||||
:isSubmit="isSubmit"
|
||||
:is-resubmit="isResubmit"
|
||||
@terminationProcess="terminationProcess"
|
||||
@adopt="adopt"
|
||||
@sendBack="sendBack"
|
||||
@submit="submit"
|
||||
@Resubmit="Resubmit"
|
||||
/>
|
||||
<circulationHistory v-if="isDisplay"/>
|
||||
|
||||
@@ -75,7 +78,9 @@
|
||||
urlFrom: 'project/projectLibraryBase/queryById',
|
||||
queryProjectLawsInventoryInfoById: 'project/projectLawsInventoryEO/queryProjectLawsInventoryInfoById',
|
||||
queryTaskDetailByTaskIds: '/task/queryTaskDetailByTaskIds',
|
||||
edit: '/project/projectTaskInventoryDetailEO/edit'
|
||||
edit: '/project/projectTaskInventoryDetailEO/edit',
|
||||
dreSubmit: '/project/projectTaskInventoryFeedbackEO/dreSubmit',
|
||||
list: '/project/projectTaskInventoryFeedbackEO/list'
|
||||
},
|
||||
queryBy: {},
|
||||
queryProject: {},
|
||||
@@ -136,24 +141,25 @@
|
||||
title: this.$t('descriptionDeliverables'),
|
||||
value: this.$route.query.remarks
|
||||
}
|
||||
]
|
||||
],
|
||||
queryPersonInCharge: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isSendBack() {
|
||||
if (this.$route.query.TaskKey == 'fqrsh') {
|
||||
if (this.$route.query.TaskKey == 'fqrsh' && this.$route.query.isDisplay) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
},
|
||||
isTerminationProcess() {
|
||||
if (this.$route.query.TaskKey == 'fqrsh') {
|
||||
if (this.$route.query.TaskKey == 'fqrsh' && this.$route.query.isDisplay) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
},
|
||||
isAdopt() {
|
||||
if (this.$route.query.TaskKey == 'fqrsh') {
|
||||
if (this.$route.query.TaskKey == 'fqrsh' && this.$route.query.isDisplay) {
|
||||
if (this.queryBy.reviewResult == 'Compliance' || this.queryBy.reviewResult == 'NA') {
|
||||
return true
|
||||
}
|
||||
@@ -161,27 +167,53 @@
|
||||
return false
|
||||
},
|
||||
isSubmit() {
|
||||
if (this.$route.query.TaskKey == 'zrrclrw') {
|
||||
if (this.$route.query.TaskKey == 'zrrclrw' && this.$route.query.isDisplay) {
|
||||
return true
|
||||
} else if (this.$route.query.TaskKey == 'dreDispose' && this.$route.query.isDisplay) {
|
||||
if (!this.queryPersonInCharge.engineerFeedbackContent && this.queryPersonInCharge.status != 'haveDone') {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
isResubmit() {
|
||||
if (this.$route.query.TaskKey == 'dreDispose' && this.$route.query.isDisplay) {
|
||||
if (this.queryPersonInCharge.engineerFeedbackContent && this.queryPersonInCharge.status != 'haveDone') {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
let _this = this
|
||||
if (this.$route.query.taskIds) {
|
||||
this.isDisplay = false
|
||||
this.queryTaskDetailByTask(function() {
|
||||
_this.queryProjectLawsInventoryInfo()
|
||||
})
|
||||
} else {
|
||||
this.loading = true
|
||||
this.isDisplay = false
|
||||
this.queryBy.projectLibraryId = this.$route.query.projectLibraryId
|
||||
this.queryBy.id = this.$route.query.projectTaskInventoryId
|
||||
this.queryProjectLawsInventoryInfo()
|
||||
this.$route.query.isDisplay = JSON.parse(this.$route.query.isDisplay)
|
||||
let query = {
|
||||
actiProcInstId: this.$route.query.actiProcInstId,
|
||||
createBy: this.userInfo().username
|
||||
}
|
||||
this.loading = true
|
||||
getAction(this.url.list, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.queryPersonInCharge = res.result[1] || {}
|
||||
if (this.$route.query.taskIds) {
|
||||
this.isDisplay = false
|
||||
this.queryTaskDetailByTask(function() {
|
||||
_this.queryProjectLawsInventoryInfo()
|
||||
})
|
||||
} else {
|
||||
this.loading = true
|
||||
this.isDisplay = false
|
||||
this.queryBy.projectLibraryId = this.$route.query.projectLibraryId
|
||||
this.queryBy.id = this.$route.query.projectTaskInventoryId
|
||||
this.queryProjectLawsInventoryInfo()
|
||||
}
|
||||
} else {
|
||||
this.dataSource = []
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
terminationProcess(operatorTime) {
|
||||
@@ -209,12 +241,40 @@
|
||||
}
|
||||
this.completeTask({ flag: 1, operatorTime: operatorTime })
|
||||
},
|
||||
Resubmit(operatorTime) {
|
||||
this.$refs.reviewedByThePersonInChargeRef.submit((res) => {
|
||||
this.textLoading = this.$t('Submitting')
|
||||
this.loading = true
|
||||
res.operatorTime = operatorTime
|
||||
if (this.$route.query.TaskKey == 'dreDispose') {
|
||||
this.dreSubmit(res)
|
||||
}
|
||||
})
|
||||
},
|
||||
submit(operatorTime) {
|
||||
this.$refs.reviewedByThePersonInChargeRef.submit((res) => {
|
||||
this.textLoading = this.$t('Submitting')
|
||||
this.loading = true
|
||||
res.operatorTime = operatorTime
|
||||
this.completeTask(res)
|
||||
if (this.$route.query.TaskKey == 'dreDispose') {
|
||||
this.dreSubmit(res)
|
||||
} else {
|
||||
this.completeTask(res)
|
||||
}
|
||||
})
|
||||
},
|
||||
dreSubmit(val) {
|
||||
let query = {
|
||||
id: this.queryPersonInCharge.id,
|
||||
engineerFeedbackContent: val.engineerFeedbackContent,
|
||||
fileId: val.fileId,
|
||||
flowType: this.$route.query.flowType,
|
||||
actiProcInstId: this.$route.query.actiProcInstId,
|
||||
projectTaskInventoryId: this.$route.query.projectTaskInventoryId,
|
||||
deliveryRequirements: val.deliveryRequirements
|
||||
}
|
||||
putAction(this.url.dreSubmit, query).then((res) => {
|
||||
|
||||
})
|
||||
},
|
||||
completeTask(value) {
|
||||
|
||||
+126
-126
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="doc-detail">
|
||||
<!-- 认证参数收集——清单信息-->
|
||||
<!-- 认证参数收集——清单信息-->
|
||||
<div class="Virtual-detail-header" style="position: fixed;top: 0">
|
||||
<div class="Virtual-detail-title">
|
||||
<span style="line-height: 74px;display: inline-block;float: left">
|
||||
@@ -65,144 +65,144 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TaskList from '@/views/projectManagement/components/TaskList'
|
||||
import listOfRegulations from '@/views/projectManagement/components/listOfRegulations'
|
||||
import ProjectDetailsName from '@/views/projectManagement/components/ProjectDetails'
|
||||
import ParameterItemCollectionList from '../../components/ParameterItemCollectionList'
|
||||
import nonConformance from '@/views/projectManagement/components/nonConformance'
|
||||
import updateLog from '@/components/UpdateLog/index'
|
||||
import historicalVersionList from '@/views/projectManagement/components/historicalVersionList'
|
||||
import commentList from '@/views/projectManagement/components/commentList'
|
||||
import TaskList from '@/views/projectManagement/components/TaskList'
|
||||
import listOfRegulations from '@/views/projectManagement/components/listOfRegulations'
|
||||
import ProjectDetailsName from '@/views/projectManagement/components/ProjectDetails'
|
||||
import ParameterItemCollectionList from '../../components/ParameterItemCollectionList'
|
||||
import nonConformance from '@/views/projectManagement/components/nonConformance'
|
||||
import updateLog from '@/components/UpdateLog/index'
|
||||
import historicalVersionList from '@/views/projectManagement/components/historicalVersionList'
|
||||
import commentList from '@/views/projectManagement/components/commentList'
|
||||
|
||||
export default {
|
||||
name: 'ProjectDetails',
|
||||
components: {
|
||||
TaskList,
|
||||
listOfRegulations,
|
||||
ProjectDetailsName,
|
||||
ParameterItemCollectionList,
|
||||
nonConformance,
|
||||
updateLog,
|
||||
historicalVersionList,
|
||||
commentList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: this.$t('projectDetails'),
|
||||
textTitle: '认证参数收集',
|
||||
url: {
|
||||
logList: '',
|
||||
historicalVersionUrl: ''
|
||||
export default {
|
||||
name: 'ProjectDetails',
|
||||
components: {
|
||||
TaskList,
|
||||
listOfRegulations,
|
||||
ProjectDetailsName,
|
||||
ParameterItemCollectionList,
|
||||
nonConformance,
|
||||
updateLog,
|
||||
historicalVersionList,
|
||||
commentList
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: this.$t('projectDetails'),
|
||||
textTitle: '认证参数收集',
|
||||
url: {
|
||||
logList: '/project/projectLawsInventoryLogEO/page',
|
||||
historicalVersionUrl: ''
|
||||
},
|
||||
paramsManifest: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.textColor()
|
||||
// 清单信息
|
||||
this.paramsManifest = JSON.parse(localStorage.getItem('paramsManifest'))
|
||||
},
|
||||
methods: {
|
||||
textColor() {
|
||||
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
|
||||
if (textColor && textColor.length > 0) {
|
||||
textColor[0].classList.remove('Virtual-detail-left-text-color')
|
||||
}
|
||||
let text = document.getElementsByClassName('Virtual-detail-left-text')
|
||||
if (text && text.length > 0) {
|
||||
text[4].classList.add('Virtual-detail-left-text-color')
|
||||
}
|
||||
},
|
||||
paramsManifest: {},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.textColor()
|
||||
// 清单信息
|
||||
this.paramsManifest = JSON.parse(localStorage.getItem('paramsManifest'))
|
||||
},
|
||||
methods: {
|
||||
textColor() {
|
||||
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
|
||||
if (textColor && textColor.length > 0) {
|
||||
textColor[0].classList.remove('Virtual-detail-left-text-color')
|
||||
textClick(num, name) {
|
||||
this.textTitle = name
|
||||
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
|
||||
if (textColor && textColor.length > 0) {
|
||||
textColor[0].classList.remove('Virtual-detail-left-text-color')
|
||||
}
|
||||
let text = document.getElementsByClassName('Virtual-detail-left-text')
|
||||
text[num].classList.add('Virtual-detail-left-text-color')
|
||||
},
|
||||
UpdateLogClick() {
|
||||
this.$refs.updateLogRef.getList({ projectLibraryId: this.$route.query.id })
|
||||
},
|
||||
historicalVersionClick() {
|
||||
this.$refs.historicalVersionListRef.getList()
|
||||
},
|
||||
commentClick() {
|
||||
this.$refs.commentListRef.getData()
|
||||
}
|
||||
let text = document.getElementsByClassName('Virtual-detail-left-text')
|
||||
if (text && text.length > 0) {
|
||||
text[4].classList.add('Virtual-detail-left-text-color')
|
||||
}
|
||||
},
|
||||
textClick(num, name) {
|
||||
this.textTitle = name
|
||||
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
|
||||
if (textColor && textColor.length > 0) {
|
||||
textColor[0].classList.remove('Virtual-detail-left-text-color')
|
||||
}
|
||||
let text = document.getElementsByClassName('Virtual-detail-left-text')
|
||||
text[num].classList.add('Virtual-detail-left-text-color')
|
||||
},
|
||||
UpdateLogClick() {
|
||||
this.$refs.updateLogRef.getList()
|
||||
},
|
||||
historicalVersionClick() {
|
||||
this.$refs.historicalVersionListRef.getList()
|
||||
},
|
||||
commentClick() {
|
||||
this.$refs.commentListRef.getData()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
@import '~@assets/less/common.less';
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.doc-detail {
|
||||
background: #fff;
|
||||
height: 100%;
|
||||
|
||||
.Virtual-detail-header {
|
||||
width: 100%;
|
||||
height: 68px;
|
||||
line-height: 68px;
|
||||
padding: 0 32px 0 32px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-bottom: 2px #eff1f3 solid;
|
||||
.doc-detail {
|
||||
background: #fff;
|
||||
|
||||
.Virtual-detail-title {
|
||||
display: inline-block;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
font-size: 20px;
|
||||
font-weight: 400;
|
||||
color: #040B29;
|
||||
line-height: 68px;
|
||||
}
|
||||
|
||||
.doc-detail-right {
|
||||
width: 800px;
|
||||
line-height: 68px;
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-left {
|
||||
width: 240px;
|
||||
padding: 16px 24px;
|
||||
box-sizing: border-box;
|
||||
font-size: 16px;
|
||||
line-height: 3;
|
||||
float: left;
|
||||
|
||||
.Virtual-detail-left-text {
|
||||
padding: 2px 12px;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-right {
|
||||
border-left: 2px #eff1f3 solid;
|
||||
width: calc(100% - 240px);
|
||||
height: 100%;
|
||||
float: left;
|
||||
overflow: auto;
|
||||
|
||||
.Virtual-detail-header {
|
||||
width: 100%;
|
||||
height: 68px;
|
||||
line-height: 68px;
|
||||
padding: 0 32px 0 32px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-bottom: 2px #eff1f3 solid;
|
||||
background: #fff;
|
||||
|
||||
.Virtual-detail-title {
|
||||
display: inline-block;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
font-size: 20px;
|
||||
font-weight: 400;
|
||||
color: #040B29;
|
||||
line-height: 68px;
|
||||
}
|
||||
|
||||
.doc-detail-right {
|
||||
width: 800px;
|
||||
line-height: 68px;
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-left {
|
||||
width: 240px;
|
||||
padding: 16px 24px;
|
||||
box-sizing: border-box;
|
||||
font-size: 16px;
|
||||
line-height: 3;
|
||||
float: left;
|
||||
|
||||
.Virtual-detail-left-text {
|
||||
padding: 2px 12px;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-right {
|
||||
border-left: 2px #eff1f3 solid;
|
||||
width: calc(100% - 240px);
|
||||
height: 100%;
|
||||
float: left;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-left-text-color {
|
||||
background: #eff1f3;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.Virtual-detail-left-text-color {
|
||||
background: #eff1f3;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.Virtual-detail-text-right {
|
||||
.Virtual-detail-text-right {
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -90,7 +90,7 @@
|
||||
title: this.$t('projectDetails'),
|
||||
textTitle: '项目详情',
|
||||
url: {
|
||||
logList: '',
|
||||
logList: '/project/projectLawsInventoryLogEO/page',
|
||||
historicalVersionUrl: ''
|
||||
}
|
||||
}
|
||||
@@ -119,7 +119,7 @@
|
||||
text[num].classList.add('Virtual-detail-left-text-color')
|
||||
},
|
||||
UpdateLogClick() {
|
||||
this.$refs.updateLogRef.getList()
|
||||
this.$refs.updateLogRef.getList({projectLibraryId: this.$route.query.id})
|
||||
},
|
||||
historicalVersionClick() {
|
||||
this.$refs.historicalVersionListRef.getList()
|
||||
|
||||
@@ -590,6 +590,7 @@ export default {
|
||||
// 截至时间确定弹框关闭
|
||||
areaVisibleTaskCutOffTimeflag(val) {
|
||||
this.areaVisibleTaskCutOffTime = val
|
||||
this.$refs.CollectionTabel.getTableList()
|
||||
},
|
||||
handleModule() {
|
||||
|
||||
|
||||
@@ -231,12 +231,14 @@
|
||||
CurrentColor: {
|
||||
'1': '#f3dddd',
|
||||
'2': '#f6ebdb',
|
||||
'3': '#dbf6e2'
|
||||
'3': '#dbf6e2',
|
||||
'4': '#ddf3f4'
|
||||
},
|
||||
CurrentColorBox: {
|
||||
'1': '#E83030',
|
||||
'2': '#FDA71C',
|
||||
'3': '#26BD4B'
|
||||
'3': '#26BD4B',
|
||||
'4': '#00B3BE'
|
||||
},
|
||||
url: {
|
||||
list: '/project/projectTaskInventoryEO/list',
|
||||
@@ -273,6 +275,8 @@
|
||||
},
|
||||
verifyTaskClick(val, num, isTrue) {
|
||||
let query = {}
|
||||
console.log(typeof isTrue)
|
||||
return
|
||||
switch (num) {
|
||||
case 1:
|
||||
query = {
|
||||
@@ -283,7 +287,8 @@
|
||||
id: this.$route.query.id,
|
||||
studioEngineer: this.$route.query.studioEngineer,
|
||||
serialNumber: val.serialNumber,
|
||||
TaskKey: isTrue ? val.designTaskDefinitionKey : 'hhhhh',
|
||||
TaskKey: val.designTaskDefinitionKey,
|
||||
isDisplay: isTrue,
|
||||
flowType: 2,
|
||||
Sponsor: 'designInitiatorName',
|
||||
personLiable: 'designDutyName',
|
||||
@@ -304,8 +309,9 @@
|
||||
studioEngineer: this.$route.query.studioEngineer,
|
||||
projectLibraryId: this.$route.query.id,
|
||||
serialNumber: val.serialNumber,
|
||||
TaskKey: isTrue ? val.prehomoTaskDefinitionKey : 'hhhh',
|
||||
TaskKey: val.prehomoTaskDefinitionKey,
|
||||
flowType: 3,
|
||||
isDisplay: isTrue,
|
||||
id: this.$route.query.id,
|
||||
Sponsor: 'prehomoInitiatorName',
|
||||
personLiable: 'prehomoDutyName',
|
||||
@@ -327,8 +333,9 @@
|
||||
studioEngineer: this.$route.query.studioEngineer,
|
||||
serialNumber: val.serialNumber,
|
||||
projectTaskInventoryId: val.projectLawsInventoryId,
|
||||
TaskKey: isTrue ? val.verifyTaskDefinitionKey : 'hhhhh',
|
||||
TaskKey: val.verifyTaskDefinitionKey,
|
||||
flowType: 4,
|
||||
isDisplay: isTrue,
|
||||
Sponsor: 'verifyInitiatorName',
|
||||
personLiable: 'verifyDutyName',
|
||||
typeOfDeliverables: 'verifyDeliverableType_dictText',
|
||||
|
||||
@@ -73,11 +73,12 @@
|
||||
{{ $t('green') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
<!-- <a-select-option :key="3" :value="3">-->
|
||||
<!-- <span style="display: inline-block;width: 100%">-->
|
||||
<!-- {{ $t('blue') }}-->
|
||||
<!-- </span>-->
|
||||
<!-- </a-select-option>-->
|
||||
|
||||
<a-select-option :value="'4'">
|
||||
<span style="display: inline-block;width: 100%">
|
||||
{{ $t('blue') }}
|
||||
</span>
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -143,6 +144,7 @@
|
||||
this.disabled = true
|
||||
}
|
||||
}
|
||||
console.log(val.conditionAssessment)
|
||||
this.formInline = val
|
||||
this.$nextTick(() => {
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<a-modal
|
||||
:title="$t('batSetting')"
|
||||
:width="900"
|
||||
:width="1200"
|
||||
:visible="visible"
|
||||
:confirm-loading="confirmLoading"
|
||||
:maskClosable="false"
|
||||
@@ -39,6 +39,22 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-multi" prop="region">
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.region"
|
||||
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'region'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -53,17 +69,53 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel-multi">
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
|
||||
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'duty_territory'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
:title="$t('vehicleInProductionDate')">{{$t('vehicleInProductionDate')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'implementTime'">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('vehicleInProductionDate')"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
@change="dateChange({db_field_name:'implementTime'})"
|
||||
format="YYYY-MM-DD"
|
||||
v-model="formInline.implementTime"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text" :title="$t('ImplementationDate')">{{$t('ImplementationDate')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
|
||||
@input="handleInput('dutyTerritory')"
|
||||
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" dictCode="duty_territory"/>
|
||||
<a-date-picker class="box-input"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
:placeholder="$t('PleaseSelect')+$t('ImplementationDate')"
|
||||
@change="dateChange({db_field_name:'xin1Che1Xing2Shi2Shi1Ri4Qi1'})"
|
||||
format="YYYY-MM-DD"
|
||||
v-model="formInline.xin1Che1Xing2Shi2Shi1Ri4Qi1"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -85,6 +137,8 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="12">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
@@ -244,7 +298,7 @@
|
||||
}
|
||||
|
||||
.title-text {
|
||||
width: 84px;
|
||||
width: 174px;
|
||||
text-align: right;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@
|
||||
let color = []
|
||||
if (dataSource && dataSource.length > 0) {
|
||||
dataSource.forEach(res => {
|
||||
if (res.color == '0') {
|
||||
if (res.color == '4') {
|
||||
data.push({
|
||||
value: res.conditionAssessmentCount,
|
||||
name: this.$t('blue')
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
:triggerChange="false" :dictCode="'state'"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
|
||||
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-col :md="12" :sm="24">
|
||||
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
|
||||
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
|
||||
@@ -249,8 +249,7 @@
|
||||
}
|
||||
|
||||
.title-text {
|
||||
width: 20%;
|
||||
min-width: 110px;
|
||||
width: 33px;
|
||||
color: #000F16;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
@@ -265,9 +264,8 @@
|
||||
|
||||
.box-input {
|
||||
display: inline-block;
|
||||
width: 70%;
|
||||
width: 100%;
|
||||
height: 38px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.box-button {
|
||||
|
||||
@@ -356,14 +356,14 @@
|
||||
title: this.$t('listConfirmationStatus'),
|
||||
align: 'center',
|
||||
dataIndex: 'inventoryAffirmStatusName',
|
||||
width: 180,
|
||||
width: 240,
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
},
|
||||
{
|
||||
title: this.$t('taskAffirmStatus'),
|
||||
align: 'center',
|
||||
dataIndex: 'taskAffirmStatusName',
|
||||
width: 180,
|
||||
width: 240,
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
},
|
||||
// {
|
||||
@@ -395,13 +395,13 @@
|
||||
{
|
||||
title: this.$t('ImplementationDate'),
|
||||
align: 'center',
|
||||
width: 140,
|
||||
width: 200,
|
||||
dataIndex: 'xin1Che1Xing2Shi2Shi1Ri4Qi1'
|
||||
},
|
||||
{
|
||||
title: this.$t('vehicleInProductionDate'),
|
||||
align: 'center',
|
||||
width: 140,
|
||||
width: 220,
|
||||
dataIndex: 'implementTime'
|
||||
},
|
||||
{
|
||||
@@ -421,7 +421,7 @@
|
||||
{
|
||||
title: this.$t('applicableSupplement'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
width: 220,
|
||||
dataIndex: 'applicableSupplement',
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
},
|
||||
@@ -500,6 +500,13 @@
|
||||
dataIndex: 'designDueDate',
|
||||
align: 'center',
|
||||
width: 140
|
||||
},
|
||||
{
|
||||
title: this.$t('descriptionDeliverables'),
|
||||
dataIndex: 'designRemark',
|
||||
align: 'center',
|
||||
width: 220,
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -532,6 +539,13 @@
|
||||
dataIndex: 'prehomoDueDate',
|
||||
align: 'center',
|
||||
width: 140
|
||||
},
|
||||
{
|
||||
title: this.$t('descriptionDeliverables'),
|
||||
dataIndex: 'prehomoRemark',
|
||||
align: 'center',
|
||||
width: 220,
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -564,6 +578,13 @@
|
||||
dataIndex: 'verifyDueDate',
|
||||
align: 'center',
|
||||
width: 140
|
||||
},
|
||||
{
|
||||
title: this.$t('descriptionDeliverables'),
|
||||
dataIndex: 'verifyRemark',
|
||||
align: 'center',
|
||||
width: 220,
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user