yin_yu820 пре 1 месец
родитељ
комит
d7a22d20a1
45 измењених фајлова са 3934 додато и 763 уклоњено
  1. 3 175
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/buildinginfo/controller/BuildingManagementController.java
  2. 9 9
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/buildinginfo/service/dto/BuildingManagementDTO.java
  3. 4 2
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/controller/EnterpriseInfoController.java
  4. 1 1
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/mapper/EnterpriseInfoMapper.java
  5. 7 0
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/mapper/xml/EnterpriseInfoMapper.xml
  6. 5 0
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/service/EnterpriseInfoService.java
  7. 2 0
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/service/dto/EnterpriseInfoDTO.java
  8. 27 6
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/controller/EnterpriseOtherController.java
  9. 1 1
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/mapper/EnterpriseOtherMapper.java
  10. 8 0
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/mapper/xml/EnterpriseOtherMapper.xml
  11. 2 2
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/service/EnterpriseOtherService.java
  12. 1 1
      jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/service/dto/EnterpriseOtherDTO.java
  13. 5 0
      jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/security/config/WebSecurityConfig.java
  14. 36 1
      jp-mobile/api/auth/loginService.js
  15. 1 1
      jp-mobile/common/config.js
  16. 54 11
      jp-mobile/common/wxutils.js
  17. 1 1
      jp-mobile/manifest.json
  18. 12 0
      jp-mobile/pages.json
  19. 799 141
      jp-mobile/pages/buildList/buildList.vue
  20. 160 55
      jp-mobile/pages/comEdit/comEdit.vue
  21. 633 168
      jp-mobile/pages/comInfo/comInfo.vue
  22. 88 43
      jp-mobile/pages/comList/comList.vue
  23. 97 47
      jp-mobile/pages/index/index.vue
  24. 65 35
      jp-mobile/pages/login/login.vue
  25. 342 0
      jp-mobile/pages/product/productAdd.vue
  26. 588 0
      jp-mobile/pages/product/productInfo.vue
  27. 854 0
      jp-mobile/pages/product/productList.vue
  28. BIN
      jp-mobile/static/img/add.png
  29. BIN
      jp-mobile/static/img/icon1.png
  30. BIN
      jp-mobile/static/img/icon2.png
  31. BIN
      jp-mobile/static/img/icon3.png
  32. BIN
      jp-mobile/static/img/icon4.png
  33. BIN
      jp-mobile/static/img/icon5.png
  34. BIN
      jp-mobile/static/img/icon6.png
  35. BIN
      jp-mobile/static/img/icon7.png
  36. BIN
      jp-mobile/static/img/login1.jpg
  37. BIN
      jp-mobile/static/img/logo.png
  38. BIN
      jp-mobile/static/img/mima.png
  39. BIN
      jp-mobile/static/img/yanzhengma.png
  40. BIN
      jp-mobile/static/img/zhanghao-.png
  41. BIN
      jp-mobile/static/img/zz.png
  42. 21 18
      jp-ui/src/views/modules/buildinginfo/BuildingManagementForm.vue
  43. 12 12
      jp-ui/src/views/modules/buildinginfo/BuildingManagementList.vue
  44. 64 24
      jp-ui/src/views/modules/enterpriseother/EnterpriseOtherForm.vue
  45. 32 9
      jp-ui/src/views/modules/enterpriseother/EnterpriseOtherList.vue

+ 3 - 175
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/buildinginfo/controller/BuildingManagementController.java

@@ -76,7 +76,6 @@ public class BuildingManagementController {
 	 */
 	@ApiLog("查询楼宇信息列表数据")
 	@ApiOperation(value = "查询楼宇信息列表数据")
-	@PreAuthorize("hasAuthority('buildinginfo:buildingManagement:list')")
 	@GetMapping("list")
 	public ResponseEntity<IPage<BuildingManagement>> list(BuildingManagementDTO buildingManagementDTO, Page<BuildingManagement> page) throws Exception {
 		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (buildingManagementDTO, BuildingManagementDTO.class);
@@ -90,25 +89,12 @@ public class BuildingManagementController {
 				queryWrapper.eq("id",qyid);
 			}
 		}
-		/*IPage<BuildingManagementDTO> result = buildingManagementService.page (page, queryWrapper);*/
+
 		if (StringUtils.isNotBlank(buildingManagementDTO.getReserve5())){//筛选按条件按照园区筛选
 			queryWrapper.eq("park_management",buildingManagementDTO.getReserve5());
 		}
 		IPage<BuildingManagement> result = buildingManagementService.page (page, queryWrapper);
-		List<BuildingManagement> records = result.getRecords();
-		for (int i=0;i<records.size();i++){
-			String parkManagementId = records.get(i).getParkManagementId();
-			ParkManagement byId = parkManagementService.getById(parkManagementId);
-			String id = records.get(i).getId();
 
-			QueryWrapper<EnterpriseInfo> queryWrapper1 = new QueryWrapper<>();
-			queryWrapper1.eq("des6","1")
-					.eq("des1",id)
-					.eq("del_flag","0");
-			int count = enterpriseInfoService.count(queryWrapper1);
-			records.get(i).setParkName(byId.getParkName());
-			records.get(i).setReserve3(String.valueOf(count));
-		}
 		return ResponseEntity.ok (result);
 	}
 
@@ -121,35 +107,8 @@ public class BuildingManagementController {
 	@GetMapping("list1")
 	public ResponseEntity<IPage<BuildingManagement>> list1(BuildingManagementDTO buildingManagementDTO, Page<BuildingManagement> page) throws Exception {
 		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (buildingManagementDTO, BuildingManagementDTO.class);
-		//添加角色权限
-		/*UserDTO userDTO = UserUtils.getCurrentUserDTO();
-		String[] roleIds = userDTO.getRoleIds().split(",");
-		if(Arrays.asList(roleIds).contains("6931d8e6e4974f898010bb22fbccaa14")){//物业用户
-			String officeId=userDTO.getOfficeDTO().getId();
-			String qyid=buildingManagementService.findQyidByOfficeid(officeId);
-			if(qyid!=null&&!qyid.equals("")){
-				queryWrapper.eq("id",qyid);
-			}
-		}*/
-		/*IPage<BuildingManagementDTO> result = buildingManagementService.page (page, queryWrapper);*/
-		/*if (StringUtils.isNotBlank(buildingManagementDTO.getReserve5())){
-			queryWrapper.eq("park_management",buildingManagementDTO.getReserve5());
-		}*/
-		IPage<BuildingManagement> result = buildingManagementService.page (page, queryWrapper);
-		List<BuildingManagement> records = result.getRecords();
-		for (int i=0;i<records.size();i++){
-			String parkManagementId = records.get(i).getParkManagementId();
-			ParkManagement byId = parkManagementService.getById(parkManagementId);
-			String id = records.get(i).getId();
 
-			QueryWrapper<EnterpriseInfo> queryWrapper1 = new QueryWrapper<>();
-			queryWrapper1.eq("des6","1")
-					.eq("des1",id)
-					.eq("del_flag","0");
-			int count = enterpriseInfoService.count(queryWrapper1);
-			records.get(i).setParkName(byId.getParkName());
-			records.get(i).setReserve3(String.valueOf(count));
-		}
+		IPage<BuildingManagement> result = buildingManagementService.page (page, queryWrapper);
 		return ResponseEntity.ok (result);
 	}
 
@@ -159,7 +118,6 @@ public class BuildingManagementController {
 	 */
 	@ApiLog("根据Id获取楼宇信息数据")
 	@ApiOperation(value = "根据Id获取楼宇信息数据")
-	@PreAuthorize("hasAnyAuthority('buildinginfo:buildingManagement:view','buildinginfo:buildingManagement:add','buildinginfo:buildingManagement:edit')")
 	@GetMapping("queryById")
 	public ResponseEntity<BuildingManagementDTO> queryById(String id) {
 		return ResponseEntity.ok ( buildingManagementService.findById ( id ) );
@@ -170,139 +128,10 @@ public class BuildingManagementController {
 	 */
 	@ApiLog("保存楼宇信息")
 	@ApiOperation(value = "保存楼宇信息")
-	@PreAuthorize("hasAnyAuthority('buildinginfo:buildingManagement:add','buildinginfo:buildingManagement:edit')")
 	@PostMapping("save")
 	public  ResponseEntity <String> save(@Valid @RequestBody BuildingManagementDTO buildingManagementDTO) {
 
-		String officeid= UUID.randomUUID().toString().replace("-","");
-		String buildid= UUID.randomUUID().toString().replace("-","");
-
-		String oldLoginname="";
-		String oldBuildingManagementName="";
-		if(buildingManagementDTO.getId()!=null&&!buildingManagementDTO.getId().equals("")){
-			oldLoginname=buildingManagementService.getById ( buildingManagementDTO.getId() ).getReserve2();
-			oldBuildingManagementName=buildingManagementService.getById ( buildingManagementDTO.getId() ).getBuildingName();
-		}
-
-		//新增或编辑表单保存
-		if(null == buildingManagementDTO.getId() || buildingManagementDTO.getId().isEmpty() ){
-			/*QueryWrapper<User> queryWrapper3 = new QueryWrapper<>();
-			queryWrapper3.like("name",buildingManagementDTO.getReserve2())
-					.eq("del_flag","0");
-			User userone = userService.getOne(queryWrapper3);
-			if(null != userone){
-				return ResponseEntity.badRequest ( ).body ( "该电话已存在!" );
-			}
-*/
-			buildingManagementDTO.setPlace("320900/320903/320903004");
-			buildingManagementDTO.setPlaceSelectType3("320900");
-			buildingManagementDTO.setPlaceSelectType4("320903");
-			buildingManagementDTO.setPlaceSelectType5("320903004");
-
-			//新楼宇区往机构里面插入
-			Office office = new Office();
-			//查看机构里面是否已存在
-			QueryWrapper<Office> queryWrapper = new QueryWrapper<>();
-			queryWrapper.eq("name",buildingManagementDTO.getBuildingName())
-					.eq("type","2")
-					.eq("grade","3")
-					.eq("del_flag","0");
-			Office one = officeService.getOne(queryWrapper);
-			//查询园区ID
-
-			String id = buildingManagementDTO.getParkManagement().getId();
-			ParkManagement byId = parkManagementService.getById(id);
-
-			String parkName = byId.getParkName();
-			QueryWrapper<Office> queryWrapper1 = new QueryWrapper<>();
-			queryWrapper1.eq("name",parkName)
-					.eq("type","2")
-					.eq("grade","2")
-					.eq("del_flag","0");
-			Office one1 = officeService.getOne(queryWrapper1);
-
-			if(null == one){
-//				office.setType("2");
-//				office.setGrade("3");
-//				office.setUseable("1");
-//				office.setName(buildingManagementDTO.getBuildingName());
-//				office.setParentId(one1.getId());
-//				office.setParentIds("0,1852255263109984258,"+one1.getId()+",");
-//				officeService.saveOrUpdate(office);
-
-				//改用insert ,方便存ID到中间表
-				UserDTO cuserDTO = UserUtils.getCurrentUserDTO();
-				officeService.insertOffice(officeid,"2","3","1",buildingManagementDTO.getBuildingName(),one1.getId(),"0,1852255263109984258,"+one1.getId()+",",cuserDTO.getId());
-			}else{
-				return ResponseEntity.badRequest ( ).body ( "已存在!" );
-			}
-
-
-
-			//新增园区往用户里面插入
-			UserDTO userDTO = new UserDTO();
-			userDTO.setLoginName(buildingManagementDTO.getReserve2());//登入名
-			userDTO.setPassword ( SecurityUtils.encryptPassword ( buildingManagementDTO.getReserve2()));//密码
-			userDTO.setMobile(buildingManagementDTO.getReserve2());//手机号
-			userDTO.setName(buildingManagementDTO.getReserve2());//姓名
-			userDTO.setLoginFlag("1");//是否允许登入
-			OfficeDTO companyDTO = new OfficeDTO();
-			companyDTO.setId("1852255263109984258");//盘黄园区
-			companyDTO.setType("1");
-			userDTO.setCompanyDTO(companyDTO);
-
-			OfficeDTO officeDTO = new OfficeDTO();
-			officeDTO.setType("2");
-			officeDTO.setGrade("3");
-			QueryWrapper<Office> queryWrapper2 = new QueryWrapper<>();
-			queryWrapper2.like("name",buildingManagementDTO.getBuildingName())
-					.eq("del_flag","0");
-			List<Office> list = officeService.list(queryWrapper2);
-			if (null != list && list.size()>0 ){
-				officeDTO.setId(list.get(0).getId());
-				userDTO.setOfficeDTO(officeDTO);
-			}else {
-				return ResponseEntity.badRequest ( ).body ( "无该楼宇信息!" );
-			}
-			List <RoleDTO> roleDTOList = Lists.newArrayList ( );
-			RoleDTO roleDTO = new RoleDTO();
-			roleDTO.setId("6931d8e6e4974f898010bb22fbccaa14");
-			roleDTOList.add(roleDTO);
-			userDTO.setRoleDTOList(roleDTOList);
-			userService.saveOrUpdate(userDTO);
-
-
-			BuildingManagement p=buildingManagementWrapper.toEntity (buildingManagementDTO);
-			p.setId(buildid);
-			UserDTO userDTO2 = UserUtils.getCurrentUserDTO();
-			p.setCreateBy(userDTO2.getId());
-			p.setCreateDate(new Date());
-			p.setUpdateBy(userDTO2.getId());
-			p.setUpdateDate(new Date());
-			p.setDelFlag(0);
-			buildingManagementService.insertBuildingManagement (p);
-			//保存一下中间表
-			officeService.saveOfficeMiddleTable(officeid,buildid,"","2");
-
-		}else {
-			String reserve2 = buildingManagementDTO.getReserve2();
-			if (!oldLoginname.equals(reserve2)) {
-			QueryWrapper<Office> queryWrapper = new QueryWrapper<>();
-			queryWrapper.like("name",oldBuildingManagementName)
-					.eq("del_flag","0");
-			Office one = officeService.getOne(queryWrapper);
-			one.setName(buildingManagementDTO.getBuildingName());
-			officeService.saveOrUpdate(one);
-				//如果用户已存在,如果园区名称和物业联系电话都修改了
-				UserDTO olduserDTO = userService.getUserByLoginName(oldLoginname);
-				olduserDTO.setLoginName(buildingManagementDTO.getReserve2());
-				olduserDTO.setName(buildingManagementDTO.getReserve2());
-				olduserDTO.setPassword(SecurityUtils.encryptPassword(buildingManagementDTO.getReserve2()));
-				olduserDTO.setMobile(buildingManagementDTO.getReserve2());
-				userService.saveOrUpdate(olduserDTO);
-			}
-			buildingManagementService.saveOrUpdate (buildingManagementWrapper.toEntity (buildingManagementDTO));
-		}
+		buildingManagementService.saveOrUpdate (buildingManagementWrapper.toEntity (buildingManagementDTO));
 
 		return ResponseEntity.ok ( "保存楼宇信息成功" );
 	}
@@ -313,7 +142,6 @@ public class BuildingManagementController {
 	 */
 	@ApiLog("删除楼宇信息")
 	@ApiOperation(value = "删除楼宇信息")
-	@PreAuthorize("hasAuthority('buildinginfo:buildingManagement:del')")
 	@DeleteMapping("delete")
 	public ResponseEntity <String> delete(String ids) {
 		String idArray[] = ids.split(",");

+ 9 - 9
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/buildinginfo/service/dto/BuildingManagementDTO.java

@@ -37,11 +37,17 @@ public class BuildingManagementDTO extends BaseDTO {
 	/**
      * 楼宇名称
      */
-	@NotNull(message="楼宇名称不能为空")
+	@NotNull(message="园区名称不能为空")
     @Query(tableColumn = "a.building_name", javaField = "buildingName", type = QueryType.LIKE)
-	@ExcelProperty("楼宇名称")
+	@ExcelProperty("园区名称")
 	private String buildingName;
 
+	/**
+	 * 园区简介
+	 */
+	@ExcelProperty("园区简介")
+	private String buildingDescribe;
+
 	/**
      * 楼宇经度
      */
@@ -61,11 +67,7 @@ public class BuildingManagementDTO extends BaseDTO {
 	@ExcelProperty("楼宇联系人")
 	private String buildingContacts;
 
-	/**
-     * 楼宇描述
-     */
-	@ExcelProperty("楼宇描述")
-	private String buildingDescribe;
+
 
 	/**
      * 楼宇层数
@@ -78,7 +80,6 @@ public class BuildingManagementDTO extends BaseDTO {
      */
     @Query(tableColumn = "a.building_area", javaField = "buildingArea", type = QueryType.LIKE)
 	@ExcelProperty("楼宇总面积")
-	@NotNull(message="楼宇总面积不能为空")
 	private String buildingArea;
 
 	/**
@@ -152,7 +153,6 @@ public class BuildingManagementDTO extends BaseDTO {
      * 楼宇联系人电话
      */
 	@ExcelProperty("楼宇联系人电话")
-	@NotNull(message="楼宇联系人电话不能为空")
 	private String reserve2;
 
 	/**

+ 4 - 2
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/controller/EnterpriseInfoController.java

@@ -495,7 +495,8 @@ public class EnterpriseInfoController {
 		params.put("noncestr",rs ); // 随机字符串
 		params.put("timestamp", times);
 		//params.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5/pages/index/index?loginid="+res);
-		params.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5");
+		params.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5/");
+		//params.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5/pages/comEdit/comEdit");
 		String signature = createSHA1String(params);
 		ab.signature=signature;
 
@@ -507,7 +508,8 @@ public class EnterpriseInfoController {
 		aa.put("nonceStr", rs);
 		aa.put("signature", signature);
 		//aa.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5/pages/index/index?loginid="+res);
-		aa.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5");
+		aa.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5/");
+		//aa.put("url", "https://miniapp.huidutech.com.cn/yd_qycpfbH5/pages/comEdit/comEdit");
 
 		System.out.println("Response: " + aa);
 		return ResponseEntity.ok (aa);

+ 1 - 1
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/mapper/EnterpriseInfoMapper.java

@@ -57,7 +57,7 @@ public interface EnterpriseInfoMapper extends BaseMapper<EnterpriseInfo> {
     HashMap<String, Object> loginid(String id);
     HashMap<String, Object> getchupassword(String phone);
 
-
+    EnterpriseInfoDTO findEnterpriseByPhone(String phone);
     EnterpriseInfoDTO findByName(String name);
 
     int insertEnterpriseInfo(EnterpriseInfo enterpriseInfo);

+ 7 - 0
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/mapper/xml/EnterpriseInfoMapper.xml

@@ -81,6 +81,13 @@
     </select>
 
 
+
+    <select id="findEnterpriseByPhone" resultType="com.jeeplus.enterpriseinfo.service.dto.EnterpriseInfoDTO">
+        SELECT *
+        FROM ly_enterprise_info
+        where del_flag=0 and phone=#{phone} LIMIT 1
+    </select>
+
     <select id="findByName" resultType="com.jeeplus.enterpriseinfo.service.dto.EnterpriseInfoDTO">
         SELECT *
         FROM ly_enterprise_info

+ 5 - 0
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/service/EnterpriseInfoService.java

@@ -62,6 +62,11 @@ public class EnterpriseInfoService extends ServiceImpl<EnterpriseInfoMapper, Ent
         return  baseMapper.findListFromLy (Lyid);
     }
 
+    //通过phone 查询企业信息
+    public EnterpriseInfoDTO findEnterpriseByPhone(String phone) {
+        return  baseMapper.findEnterpriseByPhone (phone);
+    }
+
     //通过officeid 查询qyid
     public String findQyidByOfficeid(String Officeid) {
         return  baseMapper.findQyidByOfficeid (Officeid);

+ 2 - 0
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseinfo/service/dto/EnterpriseInfoDTO.java

@@ -142,8 +142,10 @@ public class EnterpriseInfoDTO extends BaseDTO {
 	@ExcelIgnore
 	private String des6;
 	@ExcelIgnore
+	@Query(type = QueryType.EQ)
 	private String des7;
 	@ExcelIgnore
+	@Query(type = QueryType.EQ)
 	private String des8;
 	@ExcelIgnore
 	private String des9;

+ 27 - 6
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/controller/EnterpriseOtherController.java

@@ -11,6 +11,10 @@ import com.jeeplus.core.excel.ExcelOptions;
 import com.jeeplus.core.excel.annotation.ExportMode;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.enterpriseinfo.service.EnterpriseInfoService;
+import com.jeeplus.enterpriseinfo.service.dto.EnterpriseInfoDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.UserUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.http.ResponseEntity;
@@ -45,16 +49,23 @@ public class EnterpriseOtherController {
 	@Autowired
 	private EnterpriseOtherWrapper enterpriseOtherWrapper;
 
+	@Autowired
+	private EnterpriseInfoService enterpriseInfoService;
+
 	/**
 	 * 企业信息列表数据
 	 */
 	@ApiLog("查询企业信息列表数据")
 	@ApiOperation(value = "查询企业信息列表数据")
-	@PreAuthorize("hasAuthority('enterpriseother:enterpriseOther:list')")
 	@GetMapping("list")
 	public ResponseEntity<IPage<EnterpriseOtherDTO>> list(EnterpriseOtherDTO enterpriseOtherDTO, Page<EnterpriseOtherDTO> page) throws Exception {
 		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (enterpriseOtherDTO, EnterpriseOtherDTO.class);
-		IPage<EnterpriseOtherDTO> result = enterpriseOtherService.findPage (page, queryWrapper);
+
+		String CreateBy="";
+		if(enterpriseOtherDTO.getDes10()!=null&&enterpriseOtherDTO.getDes10().equals("1")){
+			CreateBy=UserUtils.getCurrentUserDTO().getId();
+		}
+		IPage<EnterpriseOtherDTO> result = enterpriseOtherService.findPage (page, queryWrapper,enterpriseOtherDTO.getQyName(),CreateBy);
 		return ResponseEntity.ok (result);
 	}
 
@@ -64,7 +75,6 @@ public class EnterpriseOtherController {
 	 */
 	@ApiLog("根据Id获取企业信息数据")
 	@ApiOperation(value = "根据Id获取企业信息数据")
-	@PreAuthorize("hasAnyAuthority('enterpriseother:enterpriseOther:view','enterpriseother:enterpriseOther:add','enterpriseother:enterpriseOther:edit')")
 	@GetMapping("queryById")
 	public ResponseEntity<EnterpriseOtherDTO> queryById(String id) {
 		return ResponseEntity.ok ( enterpriseOtherService.findById ( id ) );
@@ -79,6 +89,17 @@ public class EnterpriseOtherController {
 	@PostMapping("save")
 	public  ResponseEntity <String> save(@Valid @RequestBody EnterpriseOtherDTO enterpriseOtherDTO) {
 		//新增或编辑表单保存
+
+		UserDTO userDTO = UserUtils.getCurrentUserDTO();
+
+		EnterpriseInfoDTO ep=enterpriseInfoService.findEnterpriseByPhone(userDTO.getLoginName());
+		if(ep!=null){
+			enterpriseOtherDTO.setQyId(ep.getId());
+			enterpriseOtherDTO.setDes5(ep.getName());
+		}else{
+			enterpriseOtherDTO.setQyId("1");
+			enterpriseOtherDTO.setDes5("管理员");
+		}
 		enterpriseOtherService.saveOrUpdate (enterpriseOtherWrapper.toEntity (enterpriseOtherDTO));
         return ResponseEntity.ok ( "保存企业信息成功" );
 	}
@@ -96,7 +117,7 @@ public class EnterpriseOtherController {
         enterpriseOtherService.removeByIds ( Lists.newArrayList ( idArray ) );
 		return ResponseEntity.ok( "删除企业信息成功" );
 	}
-	
+
 	/**
      * 导出企业信息数据
      *
@@ -112,14 +133,14 @@ public class EnterpriseOtherController {
         String fileName = options.getFilename ( );
 		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (enterpriseOtherDTO, EnterpriseOtherDTO.class);
         if ( ExportMode.current.equals ( options.getMode ( ) ) ) { // 导出当前页数据
-            
+
         } else if ( ExportMode.selected.equals ( options.getMode ( ) ) ) { // 导出选中数据
             queryWrapper.in ( "a.id", options.getSelectIds () );
         } else { // 导出全部数据
             page.setSize ( -1 );
             page.setCurrent ( 0 );
         }
-        List<EnterpriseOtherDTO> result = enterpriseOtherService.findPage ( page, queryWrapper ).getRecords ( );
+        List<EnterpriseOtherDTO> result = enterpriseOtherService.findPage ( page, queryWrapper,"" ,"").getRecords ( );
         EasyExcelUtils.newInstance ( enterpriseOtherService, enterpriseOtherWrapper ).exportExcel ( result,  options.getSheetName ( ), EnterpriseOtherDTO.class, fileName,options.getExportFields (), response );
     }
 

+ 1 - 1
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/mapper/EnterpriseOtherMapper.java

@@ -34,7 +34,7 @@ public interface EnterpriseOtherMapper extends BaseMapper<EnterpriseOther> {
      * @param queryWrapper
      * @return
      */
-    IPage <EnterpriseOtherDTO> findList(Page <EnterpriseOtherDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+    IPage <EnterpriseOtherDTO> findList(Page <EnterpriseOtherDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper,String QyName,String CreateBy);
 
     HashMap<String, Object>  getQyLatestInfo(String qyid);
 }

+ 8 - 0
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/mapper/xml/EnterpriseOtherMapper.xml

@@ -88,6 +88,14 @@
 		FROM ly_enterprise_other a
 		<include refid="enterpriseOtherJoins"/>
 	    ${ew.customSqlSegment}
+
+		<if test="QyName != null and QyName !=''">
+			and (a.des5 like concat('%',#{QyName}, '%') or a.des2 like concat('%',#{QyName}, '%'))
+		</if>
+
+		<if test="CreateBy != null and CreateBy !=''">
+			and a.create_by = #{CreateBy}
+		</if>
 	</select>
 
 </mapper>

+ 2 - 2
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/service/EnterpriseOtherService.java

@@ -39,9 +39,9 @@ public class EnterpriseOtherService extends ServiceImpl<EnterpriseOtherMapper, E
 	 * @param queryWrapper
 	 * @return
 	 */
-	public IPage <EnterpriseOtherDTO> findPage(Page <EnterpriseOtherDTO> page, QueryWrapper queryWrapper) {
+	public IPage <EnterpriseOtherDTO> findPage(Page <EnterpriseOtherDTO> page, QueryWrapper queryWrapper,String QyName,String CreateBy) {
 		queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
-		return  baseMapper.findList (page, queryWrapper);
+		return  baseMapper.findList (page, queryWrapper,QyName,CreateBy);
 	}
 
 	//租金缴纳时间、消防设备数量、消防设备是否过期

+ 1 - 1
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/enterpriseother/service/dto/EnterpriseOtherDTO.java

@@ -33,7 +33,6 @@ public class EnterpriseOtherDTO extends BaseDTO {
     @ExcelProperty(value = "企业", converter = ExcelUserDTOConverter.class)
 	private String qyId;
 
-	@Query(tableColumn = "b.name", javaField = "qyName")
 	private String qyName;
 
 	/**
@@ -101,6 +100,7 @@ public class EnterpriseOtherDTO extends BaseDTO {
      * 备用1
      */
 	@ExcelProperty("备用1")
+	@Query(tableColumn = "a.des1", javaField = "des1", type = QueryType.EQ)
 	private String des1;
 
 	/**

+ 5 - 0
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/security/config/WebSecurityConfig.java

@@ -74,6 +74,11 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                         "/dp/dp/InfoStatistics",
                         "/dp/dp/InfoStatistics_industry",
                         "/enterpriseinfo/enterpriseInfo/list",
+                        "/buildinginfo/buildingManagement/list",
+                        "/buildinginfo/buildingManagement/queryById",
+                        "/enterpriseother/enterpriseOther/queryById",
+
+                        "/enterpriseother/enterpriseOther/list",
                         "/enterpriseinfo/enterpriseInfo/queryById",
                         "/enterpriseinfo/enterpriseInfo/getAreaList",
                         "/enterpriseinfo/enterpriseInfo/getHyList",

+ 36 - 1
jp-mobile/api/auth/loginService.js

@@ -45,13 +45,29 @@ export default {
 			params: inputForm
 		})
 	},
-	list: function(params) {
+	list1: function(params) {
 		return request({
 			url: '/buildinginfo/buildingManagement/list1',
 			method: 'get',
 			params: params
 		})
 	},
+	
+	list: function(params) {
+		return request({
+			url: '/buildinginfo/buildingManagement/list',
+			method: 'get',
+			params: params
+		})
+	},
+	
+	enterpriseother: function(params) {
+		return request({
+			url: '/enterpriseother/enterpriseOther/list',
+			method: 'get',
+			params: params
+		})
+	},
 
 	comlist: function(params) {
 		return request({
@@ -114,6 +130,23 @@ export default {
 		})
 	},
 
+	productSave: function(params) {
+		return request({
+			url: '/enterpriseother/enterpriseOther/save',
+			method: 'post',
+			params: params
+		})
+	},
+	
+	queryByIdPro: function(id) {
+		return request({
+			url: '/enterpriseother/enterpriseOther/queryById',
+			method: 'get',
+			params: {
+				id: id
+			}
+		})
+	},
 
 	buildSave: function(params) {
 		return request({
@@ -153,6 +186,8 @@ export default {
 	},
 	
 	
+	
+	
 	getloginstr: function(username) {
 		return request({
 			url: '/enterpriseinfo/enterpriseInfo/getloginstr',

+ 1 - 1
jp-mobile/common/config.js

@@ -3,7 +3,7 @@ let APP_SERVER_URL = ""
 if(process.env.NODE_ENV === 'development'){
     // 开发环境    http://47.97.69.114:8088/#/login 
     //APP_SERVER_URL = 'http://47.97.69.114:8088/panhuangly/'
-	APP_SERVER_URL = 'http://192.168.139.90:8071'
+	APP_SERVER_URL = 'http://192.168.139.28:8071'
 }else{
     // 生产环境
     APP_SERVER_URL = '/yd_qycpfb'

+ 54 - 11
jp-mobile/common/wxutils.js

@@ -12,17 +12,19 @@ export const wxShare = (data, shareData) => {
   let nonceStr = data.nonceStr;
   let signature = data.signature;
   wx.config({
-    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。(测试记得关掉)
+    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。(测试记得关掉)
     appId: appId, // 必填,公众号的唯一标识
     timestamp: timestamp, // 必填,生成签名的时间戳
     nonceStr: nonceStr, // 必填,生成签名的随机串
     signature: signature, // 必填,签名,见附录1
     jsApiList: [
-      // 必填,需要使用的JS接口列表
-      // "checkJsApi",
       'updateAppMessageShareData', //分享到微信及QQ(新接口)
       'updateTimelineShareData', //分享到朋友圈”及“分享到QQ空间(新接口)
-    ],
+	  'onMenuShareAppMessage'	  
+    ]
+	
+	  // 必填,需要使用的JS接口列表
+	  // "checkJsApi",
   });
   // wx.checkJsApi({
   //   jsApiList: ["chooseImage", "updateAppMessageShareData"], // 需要检测的JS接口列表,所有JS接口列表见附录2,
@@ -42,15 +44,56 @@ export const wxShare = (data, shareData) => {
     //     console.log("分享朋友圈成功返回的信息为:", res);
     //   },
     // });
+	
+	
+	// wx.updateAppMessageShareData({
+		
+	//   title: '盐都区工业企业产品发布平台', // 分享标题
+	//   desc: '点击直接登录', // 分享描述
+	//   link: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id + "&t=" + data.timestamp + "&Content=1", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+	//   imgUrl: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/static/img/homeHL.png', // 分享图标
+		
+
+	//   // link: shareData.link + "&t=" + shareData.timestamp + "&Content=1", // 分享链接 该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+	//   success: function (res) {
+	//     console.log("分享朋友成功返回的信息为:", res);
+	//   },
+	// });
+	
+	
+	if(wx.updateAppMessageShareData) {
+	 	wx.updateAppMessageShareData({
+			
+		  // title: '盐都区工业企业产品发布平台', // 分享标题
+		  // desc: '点击直接登录', // 分享描述
+		  // link: shareData.link + "&t=" + shareData.timestamp + "&Content=1", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+		  // imgUrl: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/static/img/titlebg.jpg', // 分享图标
+			
+	 	  ...shareData,
+	 	  // link: shareData.link + "&t=" + shareData.timestamp + "&Content=1", // 分享链接 该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+	 	  success: function (res) {
+	 	    console.log("分享朋友成功返回的信息为:", res);			
+	 	  },
+	 	});
+	} else {
+		wx.onMenuShareAppMessage({
+		  ...shareData,
+		  //link: shareData.link + "&t=" + shareData.timestamp + "&Content=1", // 分享链接 该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+		  success: function (res) {
+			console.log("分享朋友成功返回的信息为:", res);
+		  },
+		});
+	}
+	
 
     //“分享给朋友”及“分享到QQ”
-    wx.updateAppMessageShareData({
-      ...shareData,
-      link: shareData.link + "&t=" + timestamp + "&Content=1", // 分享链接 该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
-      success: function (res) {
-        console.log("分享朋友成功返回的信息为:", res);
-      },
-    });
+    // wx.updateAppMessageShareData({
+    //   ...shareData,
+    //   link: shareData.link + "&t=" + timestamp + "&Content=1", // 分享链接 该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+    //   success: function (res) {
+    //     console.log("分享朋友成功返回的信息为:", res);
+    //   },
+    // });
   });
   wx.error(function (res) {
     // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

+ 1 - 1
jp-mobile/manifest.json

@@ -1,7 +1,7 @@
 {
     "name" : "huidu",
     "appid" : "__UNI__09A1C76",
-    "description" : "盐都区工业企业产品发布平台",
+    "description" : "’都企供需‘线上平台",
     "versionName" : "huidu mobile 1.0",
     "versionCode" : 1,
     "transformPx" : false,

+ 12 - 0
jp-mobile/pages.json

@@ -42,6 +42,18 @@
 			"path": "pages/buildList/buildList",
 			"style": {}
 		},
+		{
+			"path": "pages/product/productList",
+			"style": {}
+		},
+		{
+			"path": "pages/product/productAdd",
+			"style": {}
+		},
+		{
+			"path": "pages/product/productInfo",
+			"style": {}
+		},
 		{
 			"path": "pages/buildInfo/buildInfo",
 			"style": {}

+ 799 - 141
jp-mobile/pages/buildList/buildList.vue

@@ -1,84 +1,266 @@
-<template>
+<template >
 	<view>
-		<cu-custom bgColor="bg-blue" :isBack="true" backUrl="/pages/index/index">
-			<block slot="content">楼宇列表</block>
-		</cu-custom>
-		
-		<view :style="[{top:CustomBar + 'px'}]">
-			<view class="search-box">
-				<view class="choose-box">
-					<jp-picker v-model="parkId" rangeKey="label" rangeValue="value"
-						:range="parkList" empty="选择园区">
-					</jp-picker>
+
+		<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
+			<swiper-item>
+				<image src="../../static/img/titlebg.jpg" class="swiper-item"></image>
+			</swiper-item>
+			<swiper-item>
+				<image src="../../static/img/titlebg.jpg" class="swiper-item"></image>
+			</swiper-item>			
+		</swiper>
+
+
+		<view class="line-box">
+			<!-- <view class="center-box">
+				<view class="center-left-box">
+					<view class="btn-box-1 mart-t">
+						{{pageInfo.enterprisec}}
+					</view>
+					<view class="btn-box-2 mart-t">
+						{{pageInfo.todayc}}
+					</view>
+					<view class="btn-box-3 mart-t">
+						{{pageInfo.samemonthc}}
+					</view>
+					<view class="btn-box-4 mart-t">
+						{{pageInfo.industryc}}
+					</view>
+													
+				</view>
+				<view class="center-left-box">
+					<view class="btn-box-text mart-t">
+						入库企业数
+					</view>
+					<view class="btn-box-text mart-t">
+						当日活跃数
+					</view>
+					<view class="btn-box-text mart-t">
+						当月活跃数
+					</view>
+					<view class="btn-box-text mart-t">
+						企业行业数
+					</view>
 				</view>
+			</view> -->
+			
+			<!-- <view class="center-box">
+				<view class="kuai-text">快捷入口</view>
 				
-				<view class="input-box">
-					<input type="text" placeholder="请输入楼宇名称" v-model="curWord" confirm-type="search"
-					></input>
+				<view class="center-left-box">
+					<!-- <view class="btn-Imbox" @click="totongxunlu2">
+						<image  class="center-img" src="/static/img/icon4.png"></image>
+						<p>新增企业</p>
+					</view> 
+					<view class="btn-Imbox" @click="totongxunlu">
+						<image  class="center-img" src="/static/img/icon3.png"></image>
+						<p>企业通讯录</p>
+					</view>
+
+					<view class="btn-Imbox" v-if="isLogin!=null" @click="outlogin">
+						<image  class="center-img2" src="/static/img/icon_logout.png"></image>
+						<p>退出登录</p>
+					</view>
+					<view class="btn-Imbox">
+						
+					</view>
+													
 				</view>
+			</view> -->
+			
+			
+			
+			
+			<view :style="[{top:CustomBar + 'px'}]">
 				
+			
+				<view class="tabs" v-if="md=='1'">
+				  <view 
+					v-for="(tab, index) in tabs" 
+					:key="index" 
+					class="tab-item" 
+					:class="{ active: activeTab === index }" 
+					@click="switchTab(index)"
+				  >
+					{{ tab.name }}
+				  </view>
+				</view>
 				
-				<text class="cuIcon-search color-white" @click="doSearch"></text>
-			</view>
+				<view class="tabs" v-if="md=='2'">
+				  <view 
+					v-for="(tab, index) in tabs2" 
+					:key="index" 
+					class="tab-item" 
+					:class="{ active: activeTab === index }" 
+					@click="switchTab2(index)"
+				  >
+					{{ tab.name }}
+				  </view>
+				</view>
 			
-			<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" :up="upOption" @up="upCallback">
-				<view class="cu-item" :class="modalName=='move-box-'+ index?'move-cur':''"
-					v-for="(item, index) in dataList" :key="index" @touchstart="ListTouchStart"
-					@touchmove="ListTouchMove" @touchend="ListTouchEnd" :data-target="'move-box-' + index">
-					
-					<view class="item-box" @click="gotoBuildInfo(item.id)">
-						<view class="item-title">
+			    <view @click="showMoreFilters = !showMoreFilters" style="width: 100%;text-align: center;">
+					{{ showMoreFilters ? '收起' : '点击展示更多筛选' }}
+				</view>
+				
+				<view class="search-box" v-if="showMoreFilters" >
+					<view class="search-box1">
+						<view class="choose-box">
+												
+							<input type="text"  placeholder="输入或选择属地" v-model="searchForm.des1" confirm-type="search" style="padding-left: 28rpx;"
+							></input>
 							
-							<view>
-								<text class="line-zs"></text>{{item.buildingName}}(<text class="subtitle">{{item.parkName}}</text>)
-							</view>
-							<view class="btn-box" v-if="stype == 5">
-								<view class="edit-botton" @click.stop="edit(item.id)">修改</view>
-								<view class="del-botton" @click.stop="del(item.id)">删除</view>
-							</view>
+							<jp-picker class="choose-boxp" v-model="searchForm.des1" rangeKey="label" rangeValue="value"
+								:range="parkList2"  >
+							</jp-picker>
 						</view>
-						<view class="item-line">
-							<view class="item-name">楼宇总面积:</view>
-							<view class="item-content">{{item.buildingArea}}㎡</view>
+						<view class="choose-box">
+							
+							<input type="text"  placeholder="输入或选择行业" v-model="searchForm.industry" confirm-type="search" style="padding-left: 28rpx;"
+							></input>
+							
+							<jp-picker class="choose-boxp" v-model="searchForm.industry" rangeKey="label" rangeValue="value"
+								:range="parkList"  >
+							</jp-picker>
+							
 						</view>
-						<view class="item-line">
-							<view class="item-name">楼宇企业数:</view>
-							<view class="item-content">{{item.reserve3}}</view>
+					</view>
+					
+					<view class="choose-box2" style="margin-top: 20rpx;">
+						<view class="choose-box3">
+												
+							<!-- <view style="width: 520rpx;">
+								<input type="text"  placeholder="输入或选择产业链上下游关键词" v-model="searchForm.bz2" confirm-type="search"
+								></input>
+							</view> -->
+							
+							<!-- <jp-picker style="width: 120rpx;" v-model="searchForm.bz2" rangeKey="label" rangeValue="value"
+								:range="parkList3"  >
+							</jp-picker> -->
+							
+							<view style="width: 300rpx;display: flex;align-items: center;color: #666666;font-size: 33rpx;">
+								产业链上下游:
+							</view>
+							
+							<DoublePicker
+							      :column1Label="''"
+							      :column2Label="''"
+							      :column1Data="parkList3"
+							      :column2Data="parkList4"
+							      v-model="ddd1"
+							      @update:column2Data="updateCities"
+							    />
+
+							
 						</view>
-						<view class="item-line">
-							<view class="item-name">楼宇联系人:</view>
-							<view class="item-content">{{item.buildingContacts.substring(0,5)}}({{item.reserve2}})</view>
+						
+					</view>
+							
+					<view class="choose-box2" style="margin-top: 20rpx;">
+						<view style="width: 520rpx;">
+							<input type="text"  placeholder="输入关键词产品或企业名称" v-model="searchForm.name" confirm-type="search"
+							></input>
 						</view>
+						
+						<text style="padding-left: 40rpx;flex: 1;" class="cuIcon-search color-white" @click="doSearch"></text>
 					</view>
-				
+														
 				</view>
-			</mescroll-body>
-			<uni-fab :pattern=" {
-							color: '#7A7E83',
-							backgroundColor: '#fff',
-							selectedColor: '#007AFF',
-							buttonColor: '#007AFF'
-						}" horizontal="right" vertical="bottom" @fabClick="add" v-if="stype == 5"></uni-fab>
+				
+				
+				
+				<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" :up="upOption" @up="upCallback">
+					<view class="cu-item" :class="modalName=='move-box-'+ index?'move-cur':''"
+						v-for="(item, index) in dataList" :key="index" @touchstart="ListTouchStart"
+						@touchmove="ListTouchMove" @touchend="ListTouchEnd" :data-target="'move-box-' + index">
+						
+						
+						<view class="item-box" @click="gotoBuildInfo(item.id)">
+							<view class="item-title">
+								
+								<view>
+									{{item.name}}
+								</view>
+			
+							</view>
+							<view class="item-line">
+								<view v-if="item.bz3!=''&&item.bz3!=undefined" class="item-name">{{item.bz1}}、{{item.bz3}}</view>		
+								<view v-if="item.bz3==''||item.bz3==undefined" class="item-name">{{item.bz1}}</view>	
+							</view>
+							<view class="item-line">
+								<view class="item-name2">{{item.industry}}</view>
+								<view class="item-name3">{{item.des1}}</view>
+							</view>
+			
+						</view>
+											
+						
+					</view>
+				</mescroll-body>
+				<uni-fab :pattern=" {
+								color: '#7A7E83',
+								backgroundColor: '#fff',
+								selectedColor: '#007AFF',
+								buttonColor: '#007AFF'
+							}" horizontal="right" vertical="bottom" @fabClick="add" v-if="stype == 5"></uni-fab>
+							
+				<!-- <view   @click="outlogin" class="fixed-bottom-right" v-if="isLogin!=null">
+					<image  class="center-img2" src="/static/img/icon_logout.png"></image>
+				</view> -->
+							
+			</view>
+			
+			
+			
+			
 		</view>
+
+
 	</view>
 </template>
 
 <script>
+	import loginService from "@/api/auth/loginService";
 	import uniFab from '@/components/uni-fab/uni-fab.vue';
-	import loginService from '@/api/auth/loginService.js'
+	import DoublePicker from '@/components/DoublePicker/DoublePicker.vue'
 	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
 	import MescrollMoreItemMixin from "@/components/mescroll-uni/mixins/mescroll-more-item.js";
+	import {mapActions} from 'vuex'
 	export default {
 		mixins: [MescrollMixin, MescrollMoreItemMixin], // 使用mixin (在main.js注册全局组件)
-		onShow(option) {
-			this.$auth.checkLogin()
-		},
+		name: "apps",
 		components: {
-			uniFab
+			uniFab,
+			DoublePicker
 		},
 		data() {
 			return {
-				searchForm: {},
+				isLogin:"",
+				pageInfo: {},
+				loginid:"",
+				showMoreFilters: false,
+				tabs: [
+						{ name: '全部' },
+				        { name: '三个新兴产业' },
+				        { name: '三大未来产业' },
+				        { name: 'N个特色产业' }
+				      ],
+			    tabs2: [
+					  { name: '东山系' },
+					  { name: '长盈系' },
+					  { name: '融和系' },
+					  { name: '其他链主企业' }
+					],
+				      activeTab: 0,
+				stype: "", // 企业 => 3  楼宇 => 2  园区 => 1  zfadmin => 4  admin=> 5
+				md:"1",
+				searchForm: {
+					des1:"",
+					industry:"",
+					name:"",
+					des7:"",
+					des8:"",
+				},
+				
 				curWord: "", //当前搜索关键词
 				dataList: [], // 数据列表
 				modalName: null,
@@ -89,117 +271,300 @@
 					orders: []
 				},
 				loading: false,
-				parkList: [],
 				parkId: '',
-				stype: '',  // 企业 => 3  楼宇 => 2  园区 => 1  zfadmin => 4  admin=> 5
-			}
+				parkList: [],
+				parkList2: [],
+				parkList3: [],
+				parkList4: [],
+				ddd1:"" ,
+			};
 		},
+		onLoad(query) {
+			if(query!=undefined&&query!=null&&query!=''){
+				if(query.loginid!=undefined){
+					this.loginid=query.loginid
+					this.autoLogin();
+				}		
+					
+				if (query && query.w=='1' ) {
+					this.md = "1";
+					this.searchForm.des7="";
+				}else if(query && query.w=='2'){
+					this.md = "2";
+					this.searchForm.des8=1;
+				}	
+			}			
+		},
+		onShow() {
+			this.isLogin=this.$auth.checkisLogin();
+		},
+		
 		created() {
-			this.stype = uni.getStorageSync('stype')
+			//this.getPageInfo();
 			this.getParkList()
+			this.getParkList2()	
+			this.getParkList3()	
 		},
+
+
 		methods: {
-			// 新增
-			add() {
-				uni.navigateTo({
-					url: '/pages/buildEdit/buildEdit'
+			...mapActions(['refreshUserInfo']),
+			
+			//选择产业链上下游
+			getParkList3() {
+				loginService.getIndustryChainList({
+				}).then(({
+					data
+				}) => {
+					// this.parkList3 = data.map((item) => {
+					// 	return {
+					// 		label: item.bz2,
+					// 		value: item.bz2
+					// 	}
+					// });
+					this.parkList3=[{label: '上游',value: '上游'},{label: '中游',value: '中游'},{label: '下游',value: '下游'}]
+					
+					this.parkList4 = data
+					    .map((item) => {
+					        const match = item.bz2.match(/\((.*?)\)/); // 匹配括号内的内容
+					        if (match) {
+					            return {
+					                label: match[1], // 括号内的内容
+					                value: match[1] // 括号内的内容
+					            };
+					        }
+					        return null; // 如果没有括号,返回 null
+					    })
+					    .filter((item) => item !== null) // 过滤掉 null 值
+						.reduce((acc, current) => {
+							// 使用 Set 去重
+							const existingItem = acc.find((item) => item.value === current.value);
+							if (!existingItem) {
+							  acc.push(current);
+							}
+							return acc;
+						  }, []);
+					
+					this.parkList3.unshift({
+					    label: "全部",
+					    value: ""
+					});
+					this.parkList4.unshift({
+					    label: "全部",
+					    value: ""
+					});
+					
+				}).catch(e => {
+					console.log(e)
 				})
 			},
 			
-			getParkList() {
-				loginService.parkList({
-					current: 1,
-					size: 1000000,
+			//选择属地
+			getParkList2() {
+				loginService.getAreaList({
 				}).then(({
 					data
 				}) => {
-					this.parkList = data.records.map((item) => {
+					this.parkList2 = data.map((item) => {
 						return {
-							label: item.parkName,
-							value: item.id
+							label: item.des1,
+							value: item.des1
 						}
 					})
-					console.log(this.parkList, '=============>')
+					this.parkList2.unshift({
+					    label: "盐都区",
+					    value: ""
+					});
 				}).catch(e => {
 					console.log(e)
 				})
 			},
 			
-			// 修改
-			edit(id) {
-				uni.navigateTo({
-					url: '/pages/buildEdit/buildEdit?id=' + id
-				})
-			},
-			gotoBuildInfo(id) {
-				uni.navigateTo({
-					url: `/pages/buildEdit/buildEdit?id=${id}&ischeck=1`
-				})
-			},
-			// 删除
-			del(id) {
-				uni.showModal({
-					title: '提示',
-					content: '您确认要删除数据吗',
-					showCancel: true,
-					success: (res) => {
-						if (res.confirm) {
-							loginService.delete(id).then(({
-								data
-							}) => {
-								uni.showToast({
-									title: data,
-									icon: "success"
-								})
-								this.doSearch()
-							})
+			//选择行业
+			getParkList() {
+				loginService.getHyList({
+				}).then(({
+					data
+				}) => {
+					this.parkList = data.map((item) => {
+						return {
+							label: item.industry,
+							value: item.industry
 						}
-					}
-				});
+					})
+					this.parkList.unshift({
+					    label: "全部",
+					    value: ""
+					});
+				}).catch(e => {
+					console.log(e)
+				})
 			},
+			
 			/*获取数据列表 */
 			upCallback(page) {
 				this.loading = true
-				loginService.list({
+				loginService.comlist({
 					current: page.num,
 					size: page.size,
-					buildingName: this.curWord,
+					name: this.curWord,
+					des1: this.parkId,
+					orders: [{ column: 'a.create_date', asc: false }],
+					...this.searchForm
 				}).then(({
 					data
 				}) => {
 					let curPageData = data.records
 					this.mescroll.endBySize(curPageData.length, data.total);
 					//如果是第一页需手动制空列表
-					if (page.num == 1) {
+					if (page.num == 1)
 						this.dataList = [];
-					}
 					//追加新数据
 					this.dataList = this.dataList.concat(curPageData);
 				}).catch(e => {
 					//联网失败, 结束加载
 					this.mescroll.endErr();
 				})
-
 			},
-			// 输入监听
-			inputWord(e) {
+			
+			gotoBuildInfo(id) {
+				// uni.navigateTo({
+				// 	url: `/pages/comEdit/comEdit?id=${id}&ischeck=1`
+				// })
 				
+				window.location.href=`/yd_qycpfbH5/#/pages/comEdit/comEdit?id=${id}&ischeck=1`
+				
+			},
+			
+			updateCities(newCities) {
+			      this.cities = newCities;
 			},
+			
+			
 			// 搜索
-			doSearch(word) {
+			doSearch() {				
+				if(this.ddd1.column2!=''&&this.ddd1!=''){
+					this.searchForm.bz2=this.ddd1.column1+'('+this.ddd1.column2+')';
+				}else if(this.ddd1!=''){
+					this.searchForm.bz2=this.ddd1.column1;
+				}
+				
 				this.dataList = []; // 先清空列表,显示加载进度
 				this.mescroll.resetUpScroll();
 			},
+			
+			totongxunlu(){
+				uni.navigateTo({
+					url: '/pages/comList/comList'
+				})
+			},
+			
+			totongxunlu2(){
+				uni.showModal({
+					title: '功能暂未开放,请至后台导入!',
+					showCancel: true,
+					success: (res) => {
+						
+					}
+				});
+			},
+			
+			
+			
+			getPageInfo() {
+			  loginService.InfoStatistics({}).then(({ data }) => {
+			    this.pageInfo = data;
+			  });
+			
+			
+			},
+			
+			autoLogin(){
+			  	console.log("登录id"+this.loginid);			
+				loginService.loginid( this.loginid).then(({data}) => {
+				  this.$store.commit('SET_TOKEN',data.token);
+				  this.refreshUserInfo();
+				  
+				}).catch(e => {
+				  console.error(e)
+				})	
+			},
+
+			getRole() {
+				let userInfo = uni.getStorageSync('WMS-userinfo')
+				var officeId = userInfo.officeDTO.id;
+				var roleIds = userInfo.roleIds;
+				if (roleIds.indexOf("17bac1f980264e3e8193bc965538e2c6") != -1) {
+					//// 管理员
+					this.stype = 5
+					uni.setStorageSync('stype', this.stype);
+				} else if (roleIds.indexOf("ade960e8f02544998b07397304c059c1") != -1) {
+					// 政府管理员
+					this.stype = 4
+					uni.setStorageSync('stype', this.stype);
+				} else {
+					console.log('==================>这里走了么','================>存一个stape')
+					loginService
+						.getOtherIdByOffceid({
+							officeid: officeId,
+						})
+						.then(({
+							data
+						}) => {
+							console.log(data, "====================>getOtherIdByOffceid");
+							this.stype = data.stype;
+							uni.setStorageSync('stype', this.stype);
+						});
+				}
+				
+			},
+
+            outloginset(){				
+				loginService.logout().then(({
+					data
+				}) => {
+					this.$store.commit('logout');
+					uni.clearStorage();
+					
+				})
+				
+				this.$store.commit('logout');
+				uni.clearStorage();
+				this.isLogin=this.$auth.checkisLogin();
+				uni.hideLoading()
+			},
+
+			outlogin() {
+				uni.showModal({
+					title: '您确认退出么?',
+					showCancel: true,
+					success: (res) => {
+						if (res.confirm) {
+							uni.showLoading()
+							this.outloginset();
+							// uni.reLaunch({
+							// 	url: '/pages/login/login'
+							// })
+						}
+					}
+				});
+			},
+			tces() {
+				uni.navigateTo({
+					url: '/pages/index/AudioToWord'
+				})
+			},
+			
 			// ListTouch触摸开始
 			ListTouchStart(e) {
 				this.listTouchStart = e.touches[0].pageX
 			},
-
+			
 			// ListTouch计算方向
 			ListTouchMove(e) {
 				this.listTouchDirection = e.touches[0].pageX - this.listTouchStart > -60 ? 'right' : 'left'
 			},
-
+			
 			// ListTouch计算滚动
 			ListTouchEnd(e) {
 				if (this.listTouchDirection == 'left') {
@@ -208,30 +573,227 @@
 					this.modalName = null
 				}
 				this.listTouchDirection = null
+			},
+			
+			switchTab(index) {
+			  this.activeTab = index;
+			  if(index==0){
+				  this.searchForm.des7="";
+			  }else{
+				  this.searchForm.des7=this.activeTab;
+			  }
+			  			  
+			  this.doSearch();
+			  
+			},
+			switchTab2(index) {
+			  this.activeTab = index;
+			  if(index==0){
+			  		this.searchForm.des8="";
+			  }else{
+			  		this.searchForm.des8=this.activeTab;
+			  }
+			  this.doSearch();
+			  
 			}
 		}
 	}
 </script>
 
 <style>
-	.ellipsis-description {
-		font-size: 12px;
-		line-height: $line-height-base;
-		display: -webkit-box;
-		/*作为弹性伸缩盒子模型显示*/
-		-webkit-line-clamp: 1;
-		/*显示的行数;如果要设置2行加...则设置为2*/
-		overflow: hidden;
-		/*超出的文本隐藏*/
-		text-overflow: ellipsis;
-		/* 溢出用省略号*/
-		-webkit-box-orient: vertical;
-		/*伸缩盒子的子元素排列:从上到下*/
+	.page {
+		height: 100vh;
+	}
+
+	.line-box {
+
+		padding-left: 20rpx;
+		padding-right: 20rpx;
+		margin-top: 20rpx;
+
+	}
+
+	.mart-t {
+		margin-top: 30rpx;
+	}
+	
+	.center-box{
+		margin-top: 20rpx;
+		width: 100%;
+		border-radius: 25rpx;
+		border-radius: 25rpx;		
+		background: #fff;
+		box-shadow: 0px 8px 16px 2px rgba(101, 101, 101, 0.2);
+		padding-bottom: 30rpx;
+		display: flex;
+		flex-wrap: wrap;
+	}
+	
+	.center-left-box {
+		width: 100%;		
+		padding-bottom: 30rpx;
+		display: flex;
+		flex-wrap: wrap;
 	}
 	
+	.btn-box-text {
+		flex:1;
+		height: 20rpx;
+		text-align: center;
+		color: #000000;
+		font-size: 14px;
+		font-weight: 700;
+	}
+
+	.btn-box-1 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color: #36A7F3;
+		font-size: x-large;
+		font-weight: 700;
+	}
+
+	.btn-box-2 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color:#F3365A;
+		font-size: x-large;
+		font-weight: 700;
+	}
+
+	.btn-box-3 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color:#15D578;
+		font-size: x-large;
+		font-weight: 700;
+	}
+
+	.btn-box-4 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color:#F1A31B;
+		font-size: x-large;
+		font-weight: 700;
+	}
+	
+	.btn-Imbox {
+		flex:1;
+		height: 150rpx;
+		padding-top: 8rpx;
+		text-align: center;
+		display: flex;
+		flex-direction: column;
+		justify-content: center; /* 子元素内部内容竖向居中 */
+		align-items: center; /* 子元素内部内容水平居中 */
+		text-align: center; /* 文字居中 */
+		
+	}
+	.btn-Imbox p {
+	  font-size: 14px; /* 文字大小,可根据需要调整 */
+	  margin: 0; /* 去掉默认的外边距 */
+	  font-weight: 700;
+	}
+	
+	.center-img{
+		width: 90rpx;
+		height: 90rpx;
+		margin-bottom: 10rpx;
+		text-align: center;
+	}
+	
+	.center-img2{
+		width: 70rpx;
+		height: 70rpx;
+		margin-top: 10rpx;
+		margin-bottom: 20rpx;
+		text-align: center;
+	}
+	
+	.kuai-text{
+		color: #000000;
+		font-weight: 900;
+		font-size: 34rpx;
+		padding-top: 20rpx;
+		padding-left: 20rpx;
+	}
+
+	.btn-box-5 {
+		width: 337rpx;
+		height: 200rpx;
+		background-image: url('../../static/img/btn3.png');
+		background-size: 100% 100%;
+	}
+
+	.btn-box-6 {
+		width: 337rpx;
+		height: 200rpx;
+		background-image: url('../../static/img/btn6.png');
+		background-size: 100% 100%;
+	}
+
+	.h-200 {
+		height: 200rpx;
+	}
+
+	.swiper {
+		width: 750rpx;
+		height: 310rpx;
+	}
+
+	.swiper-item {
+		width: 750rpx;
+		height: 310rpx;
+		background-color: aliceblue;
+	}
+
+	.font-size-35 {
+		font-size: 35px !important;
+	}
+
+	.img-size {
+		width: 80rpx;
+		height: 80rpx;
+	}
+
+	.content-box {
+		width: 437rpx;
+		height: 200rpx;
+	}
+
+	.my-app .padding-sm {
+		padding: 6px;
+	}
+
+	.grid .padding-sm .bg-white {
+		box-shadow: 0 1px 4px #f9f9f9, 1px 1px 40px rgba(0, 0, 0, .06);
+	}
+
+	.bg-blue {
+		background: #fff;
+		color: #0081ff !important;
+	}
+
+	.text-white,
+	.line-white,
+	.lines-white {
+		color: #0081ff !important;
+	}
+	
+	
+	
+	
+	.cu-bar .search-form {
+		background-color: white;
+	}
+	
+	
 	.item-box{
 		width: 710rpx;
-		margin-left: 20rpx;
 		background: #FFFFFF;
 		box-shadow: 0px 1px 3px 0px rgba(9,2,4,0.1);
 		border-radius: 10px;
@@ -246,7 +808,7 @@
 		display: flex;
 		justify-content: space-between;
 		font-size: 30rpx;
-		color: #333;
+		color: #010101;
 		font-weight: bold;
 		align-items: center;
 	}
@@ -255,6 +817,13 @@
 		display: flex;
 		height: 48rpx;
 		margin-top: 20rpx;
+
+	}
+	
+	.item-line2{
+		
+		height: 48rpx;
+		margin-top: 20rpx;
 	}
 	
 	.subtitle{
@@ -262,8 +831,24 @@
 	}
 	
 	.item-name{
-		font-size: 30rpx;
-		color: #333;
+		margin-top: 5rpx;
+		font-size: 29rpx;
+		color: #666666;
+	}
+	
+	.item-name2{
+		font-size: 29rpx;
+		color: #676D99;
+	}
+	
+	.item-name3{
+		display: flex;
+		width: 100%;
+		padding-right: 30rpx;
+		flex: 1;
+		justify-content: flex-end;
+		font-size: 29rpx;
+		color: #676D99;
 	}
 	
 	.item-content{
@@ -306,42 +891,115 @@
 	}
 	
 	.color-white{
-		color: #fff;
+		color: #808080;
 		font-size: 40rpx;
 		line-height: 60rpx;
 	}
 	
 	.search-box{
-		background: #36A7F3;
-		display: flex;
+
 		padding-left: 20rpx;
-		padding-right: 20rpx;
-		padding-bottom: 10rpx;
+		padding-right: 20rpx;	
+		padding-top: 20rpx;
+		margin-top: 20rpx;
+		width: 100%;
+		border-radius: 25rpx;
+		border-radius: 25rpx;		
+		background: #fff;
+		box-shadow: 0px 8px 16px 2px rgba(101, 101, 101, 0.2);
+		padding-bottom: 30rpx;
+		display: flex;
+		flex-wrap: wrap;
+	}
+	
+	.search-box1{
+		display: flex;
 	}
 	
+	
+	
 	.input-box{
-		margin-left: 20rpx;
 		background: #fff;
-		height: 60rpx;
-		width: 420rpx;
+		height: 65rpx;
+		width: 640rpx;
 		display: flex;
 		align-items: center;
 		border-radius: 30rpx;
-		padding-left: 10rpx;
+		padding-left: 30rpx;
 		margin-right: 20rpx;
 	}
 	
+	.input-boxinput{
+		height: 75rpx;
+		font-size: 15rpx;
+	}
+	
+	
+	
 	.choose-box{
 		background: #fff;
-		width: 200rpx;
-		border-radius: 30rpx;
-		height: 60rpx;
+		width: 325rpx;
+		border-radius: 23rpx;
+		height: 70rpx;
 		display: flex;
 		align-items: center;
 		justify-content: center;
+		margin-right: 20rpx;
+		border: 1rpx  solid #808080;
 	}
-
-	.cu-bar .search-form {
-		background-color: white;
+	
+	.choose-box2{
+		background: #fff;
+		width: 100%;
+		border-radius: 23rpx;
+		height: 70rpx;
+		display: flex;
+		padding-left: 29rpx;
+		align-items: center;
+		border: 1rpx  solid #808080;
+	}
+	
+	.choose-box3{
+		display: flex;
+	}
+	
+	.choose-boxp{
+		font-size: 32rpx;
+		width: 80rpx;
+	}
+	
+	.fixed-bottom-right {
+		padding: 20rpx;
+	  position: fixed;
+	  bottom: 20px; /* 距离底部的距离 */
+	  right: 20px; /* 距离右侧的距离 */
+	}
+	
+	.tabs {
+	  display: flex;
+	  justify-content: space-around;
+	  margin-bottom: 20px;
+	}
+	
+	.tab-item {
+	  padding: 3px 3px;
+	  cursor: pointer;
+	  transition: all 0.3s;
+	}
+	.tab-item.active {
+	  color: #66b1ff;
+	  border-bottom: 2px solid #66b1ff;
+	}
+	
+	.tab-content {
+	  padding: 20px;
+	}
+	
+	.tab-item-content {
+	  display: none;
+	}
+	
+	.tab-item-content.v-if {
+	  display: block;
 	}
 </style>

+ 160 - 55
jp-mobile/pages/comEdit/comEdit.vue

@@ -1,6 +1,10 @@
 <template>
 	<view>
-		<cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '新建企业信息'">
+		<view class="overlay" v-if="showfx" @click="showwx">
+			<image style="height: 100%;width: 100%;" src="/static/img/zz.png"></image>
+		</view>
+		
+		<!-- <cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '新建企业信息'">
 			<block slot="backText">返回</block>
 			<block slot="content">新建企业信息</block>
 		</cu-custom>
@@ -11,7 +15,17 @@
 		<cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '查看企业信息'">
 			<block slot="backText">返回</block>
 			<block slot="content">查看企业信息</block>
-		</cu-custom>
+		</cu-custom> -->
+		
+		<view :class="['custom-header', { 'is-back': isBack }, bgColor]">
+			<view class="back-container" @click="handleBack">
+			  <view class="back-text">返回</view>
+			</view>
+			<view class="content-container">
+			  <view class="content-text">{{title}}</view>
+			</view>
+		  </view>
+
 		
 		<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
 			<swiper-item>
@@ -30,7 +44,7 @@
 					<view class="text1">
 						 企业名称
 					</view>
-					<view class="text2" @click="goToCompany(inputForm.name)">
+					<view class="text2" >
 						 {{inputForm.name}}
 					</view>				
 				</view>
@@ -102,6 +116,8 @@
 				</view>				
 			</view>
 			
+			<view style="height: 30rpx;background-color: white;"></view>
+			
 			<view class="titlebg2" style="margin-top:10rpx ;">
 				<view class="titlet1" ></view>
 				<view class="titlet2" >主导产品一</view>								
@@ -125,7 +141,7 @@
 				</view>				
 			</view>
 			
-			<view style="height: 50rpx;background-color: white;"></view>
+			<view style="height: 30rpx;background-color: white;"></view>
 			
 			<view class="titlebg2" style="margin-top:10rpx ;" v-if="inputForm.bz3!=''&&inputForm.bz3!=undefined">
 				<view class="titlet1" ></view>
@@ -150,6 +166,17 @@
 				</view>				
 			</view>
 			
+			<view style="height: 30rpx;background-color: white;"></view>
+			
+			<view class="titlebg2" style="margin-top:10rpx ;" >
+				<view class="titlet1" ></view>
+				<view class="titlet2" >企业简介</view>								
+			</view>
+			
+			<view class="text221">
+				 {{inputForm.qyDes}}
+			</view>	
+			
 			<view v-if="inputForm.bz3!=''&&inputForm.bz3!=undefined" style="height: 50rpx;background-color: white;"></view>
 
 					
@@ -174,6 +201,9 @@
 		data() {
 			return {
 				title: '新建企业信息',
+				isBack: true, // 是否显示返回按钮
+			    backText: '返回', // 返回按钮的文本
+			    bgColor: 'bg-blue', // 背景颜色
 				autoUpload: false,
 				inputForm: {
 					id: '',
@@ -198,7 +228,6 @@
 					undergraduate: '',
 					postgraduate: '',
 					doctoralStudent: '',
-					qyDes: '',
 					num2: '',
 					num3: '',
 					softWritingNumbers: '',
@@ -223,6 +252,7 @@
 				isadmin:false,
 				lyIndex: '',
 				showLYList: [],
+				showfx:false,
 			}
 		},
 		created() {
@@ -283,6 +313,15 @@
 				})
 			},
 			
+			handleBack() {
+			      // 返回逻辑,比如跳转至上一页
+				  this.$router.go(-1);
+			      console.log('返回按钮被点击');
+			},
+			showwx() {
+			     this.showfx=false;
+			},
+			
 			getComById(query) {
 				loginService.queryByIdCom(query.id).then(({
 					data
@@ -305,6 +344,11 @@
 			
 			//账号分享
 			sharezz(){
+				var that=this;
+				setTimeout(function() {
+				  that.showfx=true;
+				  console.log("1"+ this.showfx);
+				}, 500); // 2000毫秒后执行
 				
 				loginService.getloginstr(this.inputForm.phone).then(({
 					data
@@ -321,34 +365,34 @@
 												
 					}else{
 						
-						//this.weixin(data);
+						this.weixin(data);
 						
-						const textArea = document.createElement("textarea");
-						textArea.value = 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id;
-						document.body.appendChild(textArea);
-						textArea.focus();
-						textArea.select();
-						try {
-						  document.execCommand('copy');
-						  uni.showModal({
-						  	title: '已将登录链接复制到剪切板,直接打开微信好友粘贴分享!',
-						  	showCancel: true,
-						  	success: (res) => {
+						// const textArea = document.createElement("textarea");
+						// textArea.value = 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id;
+						// document.body.appendChild(textArea);
+						// textArea.focus();
+						// textArea.select();
+						// try {
+						//   document.execCommand('copy');
+						//   uni.showModal({
+						//   	title: '已将登录链接复制到剪切板,直接打开微信好友粘贴分享!',
+						//   	showCancel: true,
+						//   	success: (res) => {
 						  		
-						  	}
-						  });
-						} catch (err) {
-						  console.error('Could not copy text', err);
-						  uni.showModal({
-						  	title: '当前不支持分享功能!',
-						  	showCancel: true,
-						  	success: (res) => {
+						//   	}
+						//   });
+						// } catch (err) {
+						//   console.error('Could not copy text', err);
+						//   uni.showModal({
+						//   	title: '当前不支持分享功能!',
+						//   	showCancel: true,
+						//   	success: (res) => {
 						  		
-						  	}
-						  });
-						} finally { 
-						  document.body.removeChild(textArea); 
-						}
+						//   	}
+						//   });
+						// } finally { 
+						//   document.body.removeChild(textArea); 
+						// }
 					}
 					
 				}).catch((e) => {
@@ -388,6 +432,7 @@
 			//       }
 			//     },
 			    async weixin(data) {
+					
 
 			      try {
 
@@ -398,16 +443,17 @@
 			            nonceStr: data.nonceStr,
 			            signature: data.signature,
 			            timestamp: data.timestamp,
+						Id: data.Id,
 			          }
 			          //分享数据,这段主要是为了在hash模式下分享出去的链接不被浏览器截取,保证完全把链接分享出去(link的链接可以自己拼,无须与当前页面的后缀参数之类的内容完全一致)
 			          let shareData = {
-			            title: process.env.VUE_APP_TITLE,
-			            desc: process.env.VUE_APP_DESCRIPTION,
-			            imgUrl: process.env.VUE_APP_IMAGE,
-			            link: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/pages/index/index?loginid='+data.Id ,
+			            title: '盐都区工业企业产品发布平台',
+			            desc: '点击直接登录',
+			            imgUrl: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/static/img/titlebg.jpg',
+			            link: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id + "&t=" + data.timestamp + "&Content=1", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致																		
+						
 			          };
-					  
-					  
+
 			          //引用
 			          wxShare(obj, shareData);
 					  
@@ -448,32 +494,32 @@
 			
 			call1(){
 				
-				uni.navigateTo({
-					url: '/pages/index/AudioToWord'
-				})
+				// uni.navigateTo({
+				// 	url: '/pages/index/AudioToWord'
+				// })
 				
 				// uni.navigateTo({
 				// 	url: '/pages/comList/comList'
 				// })
 				
-				// //未登录
-				// if(this.isLogin==null){
-				// 	uni.showModal({
-				// 		title: '您还未登录,是否跳转登录页面?',
-				// 		showCancel: true,
-				// 		success: (res) => {
-				// 			if (res.confirm) {
+				//未登录
+				if(this.isLogin==null){
+					uni.showModal({
+						title: '您还未登录,是否跳转登录页面?',
+						showCancel: true,
+						success: (res) => {
+							if (res.confirm) {
 								
-				// 				uni.reLaunch({
-				// 					url: '/pages/login/login'
-				// 				})
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
 								
-				// 			}
-				// 		}
-				// 	});
-				// }else{
-				// 	window.location.href = 'tel:'+this.inputForm.phone;
-				// }
+							}
+						}
+					});
+				}else{
+					window.location.href = 'tel:'+this.inputForm.phone;
+				}
 								
 			},
 			
@@ -597,4 +643,63 @@
 		font-weight: 800;
 		color: #2752eb;
 	}
+	.overlay{
+	  position: fixed; /* 固定定位,覆盖整个页面 */
+	  top: 0;
+	  left: 0;
+	  width: 100%;
+	  height: 100%;
+	  background-color: rgba(255, 255, 255, 0.5); /* 半透明白色背景 */
+	  z-index: 1000; /* 确保遮罩在页面内容之上 */
+	}
+	
+	
+	.custom-header {
+	  display: flex;
+	  align-items: center;
+	  justify-content: center;
+	  padding: 10px;
+	  width: 100%;
+	}
+	
+	.is-back {
+	  position: relative;
+	}
+	
+	.back-container {
+	  position: absolute;
+	  left: 10px;
+	  cursor: pointer;
+	}
+	
+	.back-text {
+	  color: white; /* 返回按钮文本颜色 */
+	}
+	
+	.content-container {
+	  flex: 1;
+	  text-align: center;
+	}
+	
+	.content-text {
+	  color: white; /* 标题文本颜色 */
+	  font-weight: bold;
+	}
+	
+	/* 背景颜色 */
+	.bg-blue {
+	  background-color: #4285f4; /* 假设这是一个蓝色背景 */
+	}
+	
+	.text221{
+		text-indent: 2em;
+		flex: 1;
+		min-height: 700rpx;
+		color: #666666;
+		padding: 28rpx;
+		font-size: 29rpx;
+		padding-right:15rpx ;
+		background-color: white;
+		padding-bottom: 2rpx;
+	}
 </style>

+ 633 - 168
jp-mobile/pages/comInfo/comInfo.vue

@@ -1,203 +1,668 @@
 <template>
 	<view>
-		<cu-custom :isBack="true" bgColor="bg-blue">
-			<block slot="content">楼宇详情</block>
-		</cu-custom>
-		
-		<view class="info-item">
-			<view class="info-name">企业名称:</view>
-			<view class="info-content">
-				潘黄街道园区A楼宇
-			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">所属行业:</view>
-			<view class="info-content">
-				100平方米
-			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">入驻时间:</view>
-			<view class="info-content">
-				王平平
-			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">办公面积:</view>
-			<view class="info-content">
-				13948738922
-			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">年租金:</view>
-			<view class="info-content">
-				30
-			</view>
+		<view class="overlay" v-if="showfx" @click="showwx">
+			<image style="height: 100%;width: 100%;" src="/static/img/zz.png"></image>
+						
+			
 		</view>
 		
-		<view class="info-item">
-			<view class="info-name">楼层:</view>
-			<view class="info-content">
-				300
-			</view>
-		</view>
+		<!-- <cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '新建企业信息'">
+			<block slot="backText">返回</block>
+			<block slot="content">新建企业信息</block>
+		</cu-custom>
+		<cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '修改企业信息'">
+			<block slot="backText">返回</block>
+			<block slot="content">修改企业信息</block>
+		</cu-custom>
+		<cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '查看企业信息'">
+			<block slot="backText">返回</block>
+			<block slot="content">查看企业信息</block>
+		</cu-custom> -->
 		
-		<view class="info-item">
-			<view class="info-name">上次交租时间:</view>
-			<view class="info-content">
-				300
+		<!-- <view :class="['custom-header', { 'is-back': isBack }, bgColor]">
+			<view class="back-container" @click="handleBack">
+			  <view class="back-text">返回</view>
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">上一年度销售额:</view>
-			<view class="info-content">
-				300
+			<view class="content-container">
+			  <view class="content-text">{{title}}</view>
 			</view>
-		</view>
+		  </view> -->
+
 		
-		<view class="info-item">
-			<view class="info-name">上一年度入库税收:</view>
-			<view class="info-content">
-				300
-			</view>
-		</view>
+		<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
+			<swiper-item>
+				<image :src="imgurl" class="swiper-item"></image>
+			</swiper-item>
+			<swiper-item>
+				<image :src="imgurl" class="swiper-item"></image>
+			</swiper-item>			
+		</swiper>
 		
-		<view class="info-item">
-			<view class="info-name">本年度销售额:</view>
-			<view class="info-content">
-				300
+		<form class="cu-list menu">
+			
+			<view class="show1">
+				
+				<view class="textbg">
+					<view class="text1">
+						 {{inputForm.buildingName}}
+					</view>		
+				</view>
+				
+				
+				
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">本年度入库税收:</view>
-			<view class="info-content">
-				300
+
+			<view class="titlebg2">
+				<view class="titlet1" ></view>
+				<view class="titlet2" >简介</view>								
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">车辆数:</view>
-			<view class="info-content">
-				300
+			
+			
+			<view class="textbg">
+				<view class="text12">
+					 {{inputForm.buildingDescribe}}
+				</view>			
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">用电耗能数据:</view>
-			<view class="info-content">
-				300
+			
+			<!-- <view class="textbg">
+				<view class="text12">
+					 所属行业
+				</view>
+				<view class="text22">
+					 {{inputForm.industry}}
+				</view>				
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">是否上市:</view>
-			<view class="info-content">
-				300
+			
+			<view class="textbg">
+				<view class="text12">
+					 去年销售
+				</view>
+				<view class="text22">
+					 {{inputForm.des3}}
+				</view>				
+			</view> -->
+			
+			<view class="titlebg2" style="margin-top:10rpx ;">
+				<view class="titlet1" ></view>
+				<view class="titlet2" >产业布局</view>								
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">是否融资:</view>
-			<view class="info-content">
-				300
+			<image :src="inputForm.picture"  mode="widthFix" class="img-item" >
+				
+			</image>
+			
+			<!-- <view class="textbg">
+				<view class="text12">
+					 产品名称
+				</view>
+				<view class="text22">
+					 {{inputForm.bz1}}
+				</view>				
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">是否高企:</view>
-			<view class="info-content">
-				300
+			
+			<view class="textbg" >
+				<view class="text12">
+					 产业链上下游
+				</view>
+				<view class="text22">
+					 {{inputForm.bz2}}
+				</view>				
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">是否为省市创业大赛获得者:</view>
-			<view class="info-content">
-				300
+			
+			<view style="height: 50rpx;background-color: white;"></view>
+			
+			<view class="titlebg2" style="margin-top:10rpx ;" v-if="inputForm.bz3!=''&&inputForm.bz3!=undefined">
+				<view class="titlet1" ></view>
+				<view class="titlet2" >主导产品二</view>								
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">消防器材数:</view>
-			<view class="info-content">
-				300
+			
+			<view class="textbg" v-if="inputForm.bz3!=''&&inputForm.bz3!=undefined">
+				<view class="text12">
+					产品名称
+				</view>
+				<view class="text22">
+					 {{inputForm.bz3}}
+				</view>				
 			</view>
-		</view>
-		
-		<view class="info-item">
-			<view class="info-name">消防器材数是否过期:</view>
-			<view class="info-content">
-				300
+			
+			<view class="textbg" v-if="inputForm.bz3!=''&&inputForm.bz3!=undefined" >
+				<view class="text12">
+					 产业链上下游
+				</view>
+				<view class="text22">
+					 {{inputForm.bz4}}
+				</view>				
+			</view> -->
+			
+			<view v-if="inputForm.bz3!=''&&inputForm.bz3!=undefined" style="height: 50rpx;background-color: white;"></view>
+
+					
+			
+			<view style="height: 40rpx;"></view>
+
+
+			<view class="padding-xl" v-if="isadmin&&inputForm.des6=='1'">
+				<button @click="sharezz" class="cu-btn block bg-blue margin-tb-sm lg">分享此企业账号</button>
 			</view>
-		</view>
-		
-		<view class="button-box">
-			<button class="bg-gradual-blue shadow-blur round cu-btn block lg">编辑</button>
-		</view>
+		</form>
 	</view>
 </template>
 
 <script>
-	
+	import loginService from '@/api/auth/loginService.js'
+	import { wxShare } from "@/common/wxutils.js";
 	export default {
-		
-		components:{
-			
+		onShow() {
+			//this.$auth.checkLogin()
 		},
 		data() {
 			return {
+				title: '新建企业信息',
+				imgurl: "", 
+				isBack: true, // 是否显示返回按钮
+			    backText: '返回', // 返回按钮的文本
+			    bgColor: 'bg-blue', // 背景颜色
+				autoUpload: false,
+				inputForm: {
+					id: '',
+					buildingName: '',
+					buildingDescribe: '',
+					picture: '',
+					name: '',
+					industry: '',
+					des1: '',
+					des2: '',
+					des3: '',
+					entryTime: '',
+					officeArea: '',
+					annualRent: '',
+					floor: '',
+					lxr: '',
+					phone: '',
+					htStime: '',
+					htEtime: '',
+					qyDes: '',
+					businessContent: '',
+					totalNumber: '',
+					securityNumber: '',
+					belowUndergraduate: '',
+					undergraduate: '',
+					postgraduate: '',
+					doctoralStudent: '',
+					qyDes: '',
+					num2: '',
+					num3: '',
+					softWritingNumbers: '',
+					bz1: '',
+					bz2: '',
+					bz3: '',
+					bz4: '',
+					bz5: '',
+					bz6: '',
+					des5: '',
+					des6: '',
+					des7: '',
+					des8: '',
+					des9: '',
+				},
+				text1:'',
+				text2:'',
+				parkList: [],
+				ischeck: false,
+				isLogin:"",
+				username:"",
+				isadmin:false,
+				lyIndex: '',
+				showLYList: [],
+				showfx:false,
 			}
+		},
+		created() {
+		},
+		mounted() {
+			
+		},
+		onLoad(query) {
+			this.isLogin=this.$auth.checkisLogin();
+			this.username=this.$auth.getUserInfo();
+			if(this.username!=undefined&&this.username!=''&&this.username!=null&&this.isLogin!=null){
+				if(this.username.loginName=='admin'){
+					this.isadmin=true;
+				}
+			}
+			
+			if (query && query.ischeck) {
+				this.ischeck = true
+				this.title = "查看企业信息";
+			}
+			if (query && query.id && !query.ischeck) {
+				this.title = "修改企业信息";
+			}
+			
+			
+			
+			
+			
+			this.getComById(query)
+			
+
+			
 		},
 		methods: {
+			getParkList(query) {
+				loginService.list({
+					current: 1,
+					size: 1000000,
+				}).then(({
+					data
+				}) => {
+					this.parkList = data.records.map((item) => {
+						return {
+							label: item.buildingName,
+							value: item.id
+						}
+					})
+					this.showLYList = this.parkList.map(item => item.label)
+					if (query && query.id) {
+						loginService.queryByIdCom(query.id).then(({
+							data
+						}) => {
+							this.inputForm = this.recover(this.inputForm, data)
+							this.lyIndex = this.parkList.findIndex(item => item.value == this.inputForm.des1)
+							console.log(this.lyIndex, '=====================>lyIndex')
+						}).catch((e) => {
+						
+						})
+						
+					}
+				}).catch(e => {
+					console.log(e)
+				})
+			},
+			
+			handleBack() {
+			      // 返回逻辑,比如跳转至上一页
+				  this.$router.go(-1);
+			      console.log('返回按钮被点击');
+			},
+			showwx() {
+			     this.showfx=false;
+			},
+			
+			getComById(query) {
+				loginService.queryByIdBuild(query.id).then(({
+					data
+				}) => {
+
+					this.setData(data);
+
+				}).catch((e) => {
+				
+				})
+			},
+			
+			
+			//账号分享
+			sharezz(){
+				var that=this;
+				setTimeout(function() {
+				  that.showfx=true;
+				  console.log("1"+ this.showfx);
+				}, 500); // 2000毫秒后执行
+				
+				loginService.getloginstr(this.inputForm.phone).then(({
+					data
+				}) => {
+					//未登录
+					if(data.Id=='0'){
+						uni.showModal({
+							title: '您无权限分享账号,请联系管!',
+							showCancel: true,
+							success: (res) => {
+								
+							}
+						});
+												
+					}else{
+						
+						this.weixin(data);
+						
+						// const textArea = document.createElement("textarea");
+						// textArea.value = 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id;
+						// document.body.appendChild(textArea);
+						// textArea.focus();
+						// textArea.select();
+						// try {
+						//   document.execCommand('copy');
+						//   uni.showModal({
+						//   	title: '已将登录链接复制到剪切板,直接打开微信好友粘贴分享!',
+						//   	showCancel: true,
+						//   	success: (res) => {
+						  		
+						//   	}
+						//   });
+						// } catch (err) {
+						//   console.error('Could not copy text', err);
+						//   uni.showModal({
+						//   	title: '当前不支持分享功能!',
+						//   	showCancel: true,
+						//   	success: (res) => {
+						  		
+						//   	}
+						//   });
+						// } finally { 
+						//   document.body.removeChild(textArea); 
+						// }
+					}
+					
+				}).catch((e) => {
+				
+				})
+				
+				
+				
+
+				
+				  
+				
+				
+				
+				
+			},
+			
+			
+			// async initUser() {
+			//       const { data = {} } = await api.fetchUserInfo();
+			//       if (Object.keys(data).length > 0) {
+			//         // 设置用户基本信息
+			//         this.setUser(data);
+			//         const browser = window.navigator.userAgent.toLowerCase();
+			//         //匹配browser中是否含有MicroMessenger字符串
+			//         if (browser.match(/MicroMessenger/i) == "micromessenger") {
+			//           this.weixin(data);
+			//         } else {
+			//           const params = new URLSearchParams(window.location.search);
+			//           const id = params.get("id");
+			//           if (!id || (id && id !== data.uid)) {
+			//             // 如果不是微信浏览器,则跳转页面带id后缀
+			//             const url_a = window.location.origin;
+			//             window.location.href = url_a + "?id=" + data.uid;
+			//           }
+			//         }
+			//       }
+			//     },
+			    async weixin(data) {
+					
+
+			      try {
+
+			        if ( data) {
+			          //微信加签
+			          var obj = {
+			            appId: data.appid,
+			            nonceStr: data.nonceStr,
+			            signature: data.signature,
+			            timestamp: data.timestamp,
+						Id: data.Id,
+			          }
+			          //分享数据,这段主要是为了在hash模式下分享出去的链接不被浏览器截取,保证完全把链接分享出去(link的链接可以自己拼,无须与当前页面的后缀参数之类的内容完全一致)
+			          let shareData = {
+			            title: '盐都区工业企业产品发布平台',
+			            desc: '点击直接登录',
+			            imgUrl: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/static/img/titlebg.jpg',
+			            link: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id + "&t=" + data.timestamp + "&Content=1", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致																		
+						
+			          };
+
+			          //引用
+			          wxShare(obj, shareData);
+					  
+			        } else {
+					  uni.showModal({
+					  	title: '获取sdk参数失败!',
+					  	showCancel: true,
+					  	success: (res) => {
+					  		
+					  	}
+					  });
+			        }
+			      } catch (err) {
+			        //
+			      } finally {
+			        //
+			      }
+			    },
+			
+			
+			setData(data){
+				this.inputForm = this.recover(this.inputForm, data)
+				console.log(this.inputForm.buildingName);
+				if(this.inputForm.buildingName=='盐都经开区'){
+					this.imgurl="https://miniapp.huidutech.com.cn/yd_qycpfbH5/jin.jpg";
+				}else if(this.inputForm.buildingName=='盐城高新区'){
+					this.imgurl="https://miniapp.huidutech.com.cn/yd_qycpfbH5/gao.jpg";
+				}else if(this.inputForm.buildingName=='龙冈产业园'){
+					this.imgurl="https://miniapp.huidutech.com.cn/yd_qycpfbH5/long.jpg";
+					
+				}
+				
+				
+				this.inputForm.picture="http://47.97.69.114:8089"+this.inputForm.picture;
+				
+				
+			},
+			
+			goToCompany(companyName) {
+				  //https://www.qcc.com/web/search?key=
+					
+				  window.open("https://www.qcc.com/web/search?key="+companyName);
+			      //window.location.href = `https://www.qcc.com/company/${encodeURIComponent(companyName)}`;
+			},
+			
+			call1(){
+				
+				// uni.navigateTo({
+				// 	url: '/pages/index/AudioToWord'
+				// })
+				
+				// uni.navigateTo({
+				// 	url: '/pages/comList/comList'
+				// })
+				
+				//未登录
+				if(this.isLogin==null){
+					uni.showModal({
+						title: '您还未登录,是否跳转登录页面?',
+						showCancel: true,
+						success: (res) => {
+							if (res.confirm) {
+								
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
+								
+							}
+						}
+					});
+				}else{
+					window.location.href = 'tel:'+this.inputForm.phone;
+				}
+								
+			},
+			
+			call2(){
+				//未登录
+				if(this.isLogin==null){
+					uni.showModal({
+						title: '您还未登录,是否跳转登录页面?',
+						showCancel: true,
+						success: (res) => {
+							if (res.confirm) {
+								
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
+								
+							}
+						}
+					});
+				}else{
+					window.location.href = 'tel:'+this.inputForm.bz6;
+				}
+			},
+			
+
+
+
+
+
 			
 		}
 	}
 </script>
-
 <style>
-.phly{
-	font-size: 36rpx;
-	padding-left: 30rpx;
-	line-height: 48rpx;
-	padding-top: 20rpx;
-	padding-bottom: 20rpx;
-	border-bottom: 1rpx solid #ddd;
-}
-
-.info-item{
-	display: flex;
-	border-bottom: 1rpx solid #ddd;
-	padding-top: 20rpx;
-	padding-bottom: 20rpx;
-}
-
-.info-name{
-	font-size: 32rpx;
-	width: 300rpx;
-	text-align: right;
-	line-height: 48rpx;
-	padding-left: 20rpx;
-	color: #333;
-}
-
-.info-content{
-	width: 450rpx;
-	line-height: 48rpx;
-	padding-left: 20rpx;
-	font-size: 30rpx;
-}
-
-.button-box{
-	width: 600rpx;
-	margin-top: 100rpx;
-	margin-left: auto;
-	margin-right: auto;
-	margin-bottom: 40rpx;
-}
-</style>
+	/* .file-title) {
+	    font-size: 17px !important;
+	} */
+	input,textarea{
+		color: #8799a3;
+	}
+	
+	.swiper {
+		width: 750rpx;
+		height: 310rpx;
+	}
+	
+	.swiper-item {
+		width: 750rpx;
+		height: 310rpx;
+		background-color: aliceblue;
+	}
+	.show1{
+		background-color: #2752eb;
+		padding-left: 8rpx;
+	}
+	.textbg{
+		display: flex;
+		background-color: white;
+		padding-top: 29rpx;
+	}
+	
+		
+	.text2{
+		flex: 1;
+		color: #000000;
+		font-size: 30rpx;
+		padding-bottom: 2rpx;
+	}
+	.text22{
+		flex: 1;
+		color: #666666;
+		font-size: 29rpx;
+		padding-bottom: 2rpx;
+	}
+	
+	
+	.text3{
+		display: flex;
+		color: #000000;
+	}
+	.phone{
+		display: flex;
+		color: #1E8AD7;
+		padding-left: 5rpx;
+		padding-right: 5rpx;
+		font-size: 30rpx;
+		align-items: center
+	}
+	.phoneimg{
+		margin-left: 10rpx;
+		width: 35rpx;
+		height: 35rpx;
+	}
+	.titlebg2{
+		display: flex;
+		background-color: white;
+		padding-left: 22rpx;
+		padding-top: 35rpx;
+		padding-bottom: 25rpx;
+		margin-bottom: 2rpx;
+	}
+	.titlet1{
+		width: 7rpx;
+		margin-top: 7rpx;
+		margin-bottom: 7rpx;
+		background-color: #2752eb;
+		margin-right: 8rpx;
+	}
+	.titlet2{
+		font-weight: 800;
+		color: #2752eb;
+	}
+	.overlay{
+	  position: fixed; /* 固定定位,覆盖整个页面 */
+	  top: 0;
+	  left: 0;
+	  width: 100%;
+	  height: 100%;
+	  background-color: rgba(255, 255, 255, 0.5); /* 半透明白色背景 */
+	  z-index: 1000; /* 确保遮罩在页面内容之上 */
+	}
+	
+	
+	.custom-header {
+	  display: flex;
+	  align-items: center;
+	  justify-content: center;
+	  padding: 10px;
+	  width: 100%;
+	}
+	
+	.is-back {
+	  position: relative;
+	}
+	
+	.back-container {
+	  position: absolute;
+	  left: 10px;
+	  cursor: pointer;
+	}
+	
+	.back-text {
+	  color: white; /* 返回按钮文本颜色 */
+	}
+	
+	.content-container {
+	  flex: 1;
+	  text-align: center;
+	}
+	
+	.content-text {
+	  color: white; /* 标题文本颜色 */
+	  font-weight: bold;
+	}
+	
+	/* 背景颜色 */
+	.bg-blue {
+	  background-color: #4285f4; /* 假设这是一个蓝色背景 */
+	}
+	
+	.text1{
+		width: 100%;
+		margin-left: 30rpx;
+		font-size: 32rpx;
+		color: #333;
+		font-weight: bold;
+	}
+	.text12{
+		width: 100%;
+		margin-left: 30rpx;
+		color: #000000;
+		margin-bottom: 20rpx;
+		font-size: 29rpx;
+	}
+	
+	.img-item {
+		width: 100%;
+		
+	}
+</style>

+ 88 - 43
jp-mobile/pages/comList/comList.vue

@@ -1,10 +1,17 @@
 <template>
 	<view>
-		<cu-custom bgColor="bg-blue" :isBack="true" backUrl="/pages/index/index">
-			<block slot="content">企业列表</block>
-		</cu-custom>
+		
+		<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
+			<swiper-item>
+				<image src="../../static/img/titlebg.jpg" class="swiper-item"></image>
+			</swiper-item>
+			<swiper-item>
+				<image src="../../static/img/titlebg.jpg" class="swiper-item"></image>
+			</swiper-item>			
+		</swiper>
+		
 		<view :style="[{top:CustomBar + 'px'}]">
-			<view class="search-box">
+			<!-- <view class="search-box">
 				
 				<view class="choose-box">
 										
@@ -34,7 +41,7 @@
 				</view>
 				
 				<text class="cuIcon-search color-white" @click="doSearch"></text>
-			</view>
+			</view> -->
 			
 			
 			<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" :up="upOption" @up="upCallback">
@@ -44,21 +51,22 @@
 					
 					
 					<view class="item-box" @click="gotoBuildInfo(item.id)">
-						<view class="item-title">
+						
+						
+						<image v-if="item.buildingName=='盐都经开区'" src="https://miniapp.huidutech.com.cn/yd_qycpfbH5/jin.jpg" class="item-img"></image>
+						<image v-if="item.buildingName=='盐城高新区'" src="https://miniapp.huidutech.com.cn/yd_qycpfbH5/gao.jpg" class="item-img"></image>
+						<image v-if="item.buildingName=='龙冈产业园'" src="https://miniapp.huidutech.com.cn/yd_qycpfbH5/long.jpg" class="item-img"></image>
+						<view class="item-title-L">
 							
-							<view>
-								{{item.name}}
+							<view class="item-title">
+								{{item.buildingName}}
 							</view>
 
+							<view class="item-des">
+								{{item.buildingDescribe}}
+							</view>
 						</view>
-						<view class="item-line">
-							<view v-if="item.bz3!=''" class="item-name">{{item.bz1}}、{{item.bz3}}</view>		
-							<view v-if="item.bz3==''" class="item-name">{{item.bz1}}</view>	
-						</view>
-						<view class="item-line">
-							<view class="item-name2">{{item.industry}}</view>
-							<view class="item-name3">{{item.des1}}</view>
-						</view>
+						
 
 					</view>
 										
@@ -171,7 +179,7 @@
 			},
 			gotoBuildInfo(id) {
 				uni.navigateTo({
-					url: `/pages/comEdit/comEdit?id=${id}&ischeck=1`
+					url: `/pages/comInfo/comInfo?id=${id}&ischeck=1`
 				})
 			},
 			// 删除
@@ -199,13 +207,10 @@
 			upCallback(page) {
 				console.log("upCallback")
 				this.loading = true
-				loginService.comlist({
+				loginService.list({
 					current: page.num,
-					size: page.size,
-					name: this.curWord,
-					des1: this.parkId,
-					orders: [{ column: 'a.create_date', asc: false }],
-					...this.searchForm
+					size: page.size
+					
 				}).then(({
 					data
 				}) => {
@@ -289,27 +294,7 @@
 	}
 	
 	
-	.item-box{
-		width: 710rpx;
-		margin-left: 20rpx;
-		background: #FFFFFF;
-		box-shadow: 0px 1px 3px 0px rgba(9,2,4,0.1);
-		border-radius: 10px;
-		padding-top: 20rpx;
-		padding-left: 38rpx;
-		padding-right: 10rpx;
-		margin-top: 20rpx;
-	}
 	
-	.item-title{
-		position: relative;
-		display: flex;
-		justify-content: space-between;
-		font-size: 30rpx;
-		color: #333;
-		font-weight: bold;
-		align-items: center;
-	}
 	
 	.item-line{
 		display: flex;
@@ -436,4 +421,64 @@
 	}
 	
 	
+	.swiper {
+		width: 750rpx;
+		height: 310rpx;
+	}
+	
+	.swiper-item {
+		width: 750rpx;
+		height: 310rpx;
+		background-color: aliceblue;
+	}
+	
+	
+	
+	
+	.item-box{
+		
+		display: flex;
+		
+		width: 710rpx;
+		margin-left: 20rpx;
+		background: #FFFFFF;
+		box-shadow: 0px 1px 3px 0px rgba(9,2,4,0.1);
+		border-radius: 10px;
+		padding-top: 20rpx;
+		padding-left: 20rpx;
+		padding-right: 10rpx;
+		padding-bottom: 20rpx;
+		margin-top: 20rpx;
+	}
+	
+	.item-title-L{
+		display: flex;
+		width: 70%;
+		margin-left: 28rpx;
+		flex-direction: column;
+	}
+	
+	.item-title{
+		font-size: 30rpx;
+		color: #333;
+		font-weight: bold;
+		align-items: center;
+	}
+	.item-des{
+		margin-top: 10rpx;
+		color: #565656;		
+			
+		font-size: 24rpx;
+		overflow: hidden; /* 超出部分隐藏 */
+		text-overflow: ellipsis; /* 超出部分显示省略号 */
+		display: -webkit-box; /* 使用Webkit的行盒模型 */
+		-webkit-line-clamp: 3; /* 限制最多显示2行 */
+		-webkit-box-orient: vertical; /* 垂直排列 */
+		
+	}
+	
+	.item-img {
+		width: 160rpx;
+		height: 160rpx;
+	}
 </style>

+ 97 - 47
jp-mobile/pages/index/index.vue

@@ -1,10 +1,6 @@
 <template name="apps">
 	<view>
 
-		<!-- <view style="background-color: #36A7F3;height: 80rpx;display: flex;align-items: center;justify-content: center;">
-			<view style="color: white;font-size: 16px; " >盐都区工业企业产品发布平台</view>
-		</view> -->
-
 		<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
 			<swiper-item>
 				<image src="../../static/img/titlebg.jpg" class="swiper-item"></image>
@@ -48,32 +44,51 @@
 				</view>
 			</view>
 			
-			<!-- <view class="center-box">
+			<view class="center-box">
 				<view class="kuai-text">快捷入口</view>
 				
 				<view class="center-left-box">
-					<!-- <view class="btn-Imbox" @click="totongxunlu2">
-						<image  class="center-img" src="/static/img/icon4.png"></image>
-						<p>新增企业</p>
-					</view> 
 					<view class="btn-Imbox" @click="totongxunlu">
-						<image  class="center-img" src="/static/img/icon3.png"></image>
-						<p>企业通讯录</p>
+						<image  class="center-img" src="/static/img/icon1.png"></image>
+						<p>重点园区</p>
+					</view> 
+					<view class="btn-Imbox" @click="totongxunlu2">
+						<image  class="center-img" src="/static/img/icon2.png"></image>
+						<p>产品图谱</p>
 					</view>
 
+					<view class="btn-Imbox" @click="totongxunlu3">
+						<image  class="center-img" src="/static/img/icon3.png"></image>
+						<p>链主企业</p>
+					</view>
+													
+				</view>
+				
+				<view class="center-left-box">
+					<view class="btn-Imbox" @click="totongxunlu4">
+						<image  class="center-img" src="/static/img/icon4.png"></image>
+						<p>产品供需</p>
+					</view> 
+					<view class="btn-Imbox" @click="totongxunlu5">
+						<image  class="center-img" src="/static/img/icon5.png"></image>
+						<p>我的发布</p>
+					</view>
+				
 					<view class="btn-Imbox" v-if="isLogin!=null" @click="outlogin">
-						<image  class="center-img2" src="/static/img/icon_logout.png"></image>
+						<image  class="center-img" src="/static/img/icon7.png"></image>
 						<p>退出登录</p>
 					</view>
-					<view class="btn-Imbox">
-						
+					
+					<view class="btn-Imbox" v-if="isLogin==null" @click="outlogin">
+						<image  class="center-img" src="/static/img/icon6.png"></image>
+						<p>立即登录</p>
 					</view>
 													
 				</view>
-			</view> -->
+			</view>
 			
 			
-			<view :style="[{top:CustomBar + 'px'}]">
+			<!-- <view :style="[{top:CustomBar + 'px'}]">
 				<view class="search-box">
 					<view class="search-box1">
 						<view class="choose-box">
@@ -98,16 +113,7 @@
 					</view>
 					
 					<view class="choose-box2" style="margin-top: 20rpx;">
-						<view class="choose-box3">
-												
-							<!-- <view style="width: 520rpx;">
-								<input type="text"  placeholder="输入或选择产业链上下游关键词" v-model="searchForm.bz2" confirm-type="search"
-								></input>
-							</view> -->
-							
-							<!-- <jp-picker style="width: 120rpx;" v-model="searchForm.bz2" rangeKey="label" rangeValue="value"
-								:range="parkList3"  >
-							</jp-picker> -->
+						<view class="choose-box3">											
 							
 							<view style="width: 300rpx;display: flex;align-items: center;color: #666666;font-size: 33rpx;">
 								产业链上下游:
@@ -174,7 +180,12 @@
 								selectedColor: '#007AFF',
 								buttonColor: '#007AFF'
 							}" horizontal="right" vertical="bottom" @fabClick="add" v-if="stype == 5"></uni-fab>
-			</view>
+							
+				<view   @click="outlogin" class="fixed-bottom-right" v-if="isLogin!=null">
+					<image  class="center-img2" src="/static/img/icon_logout.png"></image>
+				</view>
+							
+			</view> -->
 			
 			
 			
@@ -316,7 +327,7 @@
 						}
 					})
 					this.parkList2.unshift({
-					    label: "全部",
+					    label: "盐都区",
 					    value: ""
 					});
 				}).catch(e => {
@@ -372,9 +383,12 @@
 			},
 			
 			gotoBuildInfo(id) {
-				uni.navigateTo({
-					url: `/pages/comEdit/comEdit?id=${id}&ischeck=1`
-				})
+				// uni.navigateTo({
+				// 	url: `/pages/comEdit/comEdit?id=${id}&ischeck=1`
+				// })
+				
+				window.location.href=`/yd_qycpfbH5/#/pages/comEdit/comEdit?id=${id}&ischeck=1`
+				
 			},
 			
 			updateCities(newCities) {
@@ -401,13 +415,41 @@
 			},
 			
 			totongxunlu2(){
-				uni.showModal({
-					title: '功能暂未开放,请至后台导入!',
-					showCancel: true,
-					success: (res) => {
-						
-					}
-				});
+				uni.navigateTo({
+					url: '/pages/buildList/buildList?w=1'
+				})
+			},
+			totongxunlu3(){
+				uni.navigateTo({
+					url: '/pages/buildList/buildList?w=2'
+				})
+			},
+			totongxunlu4(){
+				uni.navigateTo({
+					url: '/pages/product/productList?w=1'
+				})
+			},
+			totongxunlu5(){
+				
+				if(this.isLogin==null){
+					uni.showModal({
+						title: '您还未登录,现在去登录?',
+						showCancel: true,
+						success: (res) => {
+							if (res.confirm) {
+								uni.showLoading()
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
+							}
+						}
+					});
+				}else{
+					uni.navigateTo({
+						url: '/pages/product/productList?w=2'
+					})
+				}
+				
 			},
 			
 			
@@ -461,16 +503,18 @@
 			},
 
             outloginset(){				
-				// loginService.logout().then(({
-				// 	data
-				// }) => {
-				// 	this.$store.commit('logout');
-				// 	uni.clearStorage();
+				loginService.logout().then(({
+					data
+				}) => {
+					this.$store.commit('logout');
+					uni.clearStorage();
 					
-				// })
+				})
 				
 				this.$store.commit('logout');
 				uni.clearStorage();
+				this.isLogin=this.$auth.checkisLogin();
+				uni.hideLoading()
 			},
 
 			outlogin() {
@@ -481,9 +525,9 @@
 						if (res.confirm) {
 							uni.showLoading()
 							this.outloginset();
-							uni.reLaunch({
-								url: '/pages/login/login'
-							})
+							// uni.reLaunch({
+							// 	url: '/pages/login/login'
+							// })
 						}
 					}
 				});
@@ -885,4 +929,10 @@
 		width: 80rpx;
 	}
 	
+	.fixed-bottom-right {
+		padding: 20rpx;
+	  position: fixed;
+	  bottom: 20px; /* 距离底部的距离 */
+	  right: 20px; /* 距离右侧的距离 */
+	}
 </style>

+ 65 - 35
jp-mobile/pages/login/login.vue

@@ -1,24 +1,26 @@
 <template>
 	<view class="zai-box">
-		<image src="../../static/img/login.png" mode='aspectFit' class="zai-logo"></image>
-		<!-- <view style="height: 300rpx;"></view> -->
-		<view class="zai-title">盐都企业</view>
-			<form>
-				<view class="cu-form-group">
-					<view class="title">用户名</view>
-					<input placeholder="请输入账号" v-model="account" name="input"></input>
+		<view class="zai-title2">
+			<image mode="aspectFit" src="/static/img/logo.png" class="zai-title"></image>
+			<form class="zai-form">
+				<view class="title1">登录</view>
+				<view class="formg">
+					<image class="formimg" src="@/static/img/zhanghao-.png"></image>
+					<input class="formgin" placeholder="请输入账号" v-model="account" name="input"></input>
 				</view>
-				<view class="cu-form-group">
-					<view class="title">密码</view>
-					<input placeholder="请输入密码" type="password" displayable  v-model="password" name="input"></input>
+				<view class="formg">
+					<image class="formimg" src="@/static/img/mima.png"></image>
+					<input class="formgin" placeholder="请输入密码" type="password" displayable  v-model="password" name="input"></input>
 				</view>
-				<view class="cu-form-group">
+				<view class="formg">
+					<image class="formimg" src="@/static/img/yanzhengma.png"></image>
+					<input class="formgin" placeholder="请输入验证码" v-model="code" name="input"></input>
 					<image  @click="getCaptcha" style="height: 50rpx;width: 160rpx;" :src="captchaImg"  mode="aspectFill"></image>
-					<input placeholder="请输入验证码" v-model="code" name="input"></input>
 				</view>
 			</form>
-			<view class="zai-label" @click="gotoNewPass">忘记密码?</view>
-				<button   @click="bindLogin" class="bg-gradual-blue shadow-blur round cu-btn block lg " >立即登录</button>
+			<!-- <view class="zai-label" @click="gotoNewPass">忘记密码?</view> -->
+			<button style="margin-left: 69upx;margin-top: 100upx;margin-right: 69upx;"   @click="bindLogin" class="bg-gradual-blue shadow-blur round cu-btn block lg " >立即登录</button>
+		</view>
 	</view>
 </template>
 
@@ -103,35 +105,63 @@
 <style>
 
 	.zai-box{
-		padding: 0 50upx;
-		position: relative;
-		
+		  background-size: cover;
+		  background-position: center;
+		  background-repeat: no-repeat;
+		  height: 100vh; /* 设置高度,确保背景图片显示完整 */
+		  display: flex;
+		  justify-content: center;
+		  background-image: url('~@/static/img/login1.jpg');
+		  background-size: cover; /* 调整图片大小以覆盖整个屏幕 */
+		  background-position: center; /* 图片居中 */
+		  background-repeat: no-repeat; /* 防止图片重复 */
 	}
-	.zai-logo{
-		width: 100%;
-		width: 100%;
-		margin-top: 100upx;
-		margin-bottom: 100upx;
-		padding: 20px;
-		height: 310upx;
-		overflow: hidden;
+	.zai-title2{
+		display: flex;
+		flex-direction: column;
+		align-items: center; /* 水平居中 */
 	}
 	.zai-title{
-		position: absolute;
-		top: 0;
-		margin-top: 100upx;
-		margin-bottom: 100upx;
-		line-height: 340upx;
-		font-size: 68upx;
+		
+		margin-top: 260upx;
 		color: #fff;
-		text-align: center;
-		width: 100%;
-		margin-left: -50upx;
+		width: 100%; /* 可选:确保图片适应容器宽度 */
+		max-width: 610rpx;
+		height: 100rpx;
+	}
+	.title1{
+		font-size: 32upx;
+		font-weight: 600;
+		color: #000;
 	}
+	
 	.zai-form{
-		margin-top: 300upx;
+		margin-top: 120upx;
+		border-radius: 20upx;
+		height: 400upx;
+		background: #fff;
+		padding: 45upx;
+		margin-left: 80upx;
+		margin-right: 80upx;
+	}
+	
+	.formg{
+		display: flex;
+		padding-bottom: 43upx;
+		padding-top: 43upx;
+		border-bottom: 1px solid  #dcdcdc;
+	}
+	
+	.formimg{
+		width: 42upx;
+		height: 42upx;
+	}
+	.formgin{
+		margin-left: 32upx;
+		width: 250upx;
 	}
 	.zai-input{
+		
 		background: #e2f5fc;
 		margin-top: 30upx;
 		border-radius: 100upx;

+ 342 - 0
jp-mobile/pages/product/productAdd.vue

@@ -0,0 +1,342 @@
+<template>
+	<view>
+		<cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '发布产品供需'">
+			<block slot="backText">返回</block>
+			<block slot="content">发布产品供需</block>
+		</cu-custom>
+		<cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '修改产品供需'">
+			<block slot="backText">返回</block>
+			<block slot="content">修改产品供需</block>
+		</cu-custom>
+		<cu-custom bgColor="bg-blue" :isBack="true" v-if="title == '查看产品供需'">
+			<block slot="backText">返回</block>
+			<block slot="content">查看产品供需</block>
+		</cu-custom>
+		
+		<form @submit="formSubmit" class="cu-list menu">
+			<view class="input1">
+				<view class="title">
+					供需类别
+				</view>
+						
+
+				<picker class="title2" @change="bindPickerChange" :value="index" :range="parkList">
+					<view class="input2">{{parkList[index]}}</view>
+				</picker>
+
+				
+			</view>
+										
+			
+			<view class="cu-form-group margin-top">
+				<view class="title">
+					{{t1}}
+				</view>
+				<input v-model="inputForm.des2" :placeholder="t1s" :disabled="ischeck"></input>
+			</view>
+
+			<view class="cu-form-group margin-top">
+				<view class="title">
+					{{t2}}
+				</view>
+				<input v-model="inputForm.des3" :placeholder="t2s" :disabled="ischeck"></input>
+			</view>
+			
+					
+			<view class="cu-form-group margin-top">
+				<view class="title">
+					{{t3}}
+				</view>
+				<textarea v-model="inputForm.des4" :placeholder="t3s" :disabled="ischeck"></textarea>
+			</view>
+
+			
+
+			<view class="cu-form-group margin-top">
+				<uni-file-picker style="margin-bottom: 10px;" limit="3" ref="picFile" v-model="picLists"
+					fileMediatype="image" mode="grid" title="图片上传" :auto-upload="autoUpload" @select="select"
+					@progress="progress" @success="success" @fail="fail" @delete="deleteFile"
+					:imageStyles="imageStyles" :disabled="ischeck">
+				</uni-file-picker>
+			</view>
+
+			
+			<view style="height: 40rpx;"></view>
+			<view class="padding-xl" v-if="!ischeck">
+				<button form-type="submit" class="cu-btn block bg-blue margin-tb-sm lg">提交</button>
+			</view>
+		</form>
+	</view>
+</template>
+
+<script>
+	var graceChecker = require("@/common/graceChecker.js");
+	import revenueListService from '@/api/revenue/revenueListService'
+	import loginService from '@/api/auth/loginService.js'
+	export default {
+		onShow() {
+			this.$auth.checkLogin()
+		},
+		data() {
+			return {
+				title: '发布产品供需',
+				inputForm: {
+					qyId:'0',
+					id: '',
+					des1: '1',
+					des2: '',
+					des3: '',
+					des4: '',
+					des6: '',			
+				},
+				t1: '产品名称',
+				t1s: '请填写产品名称',
+				t2: '产品产能',
+				t2s: '请填写产品产能',
+				t3: '详细描述',
+				t3s: '请填写详细描述',
+				
+				autoUpload: false,
+				picLists: [],
+				picUrl: [],
+				imageStyles: {
+					width: 90,
+					height: 90
+				},
+				parkList: [ "供", "需"],
+				index:0,
+				ischeck: false,
+			}
+		},
+		created() {
+			//this.getParkList()
+		},
+		mounted() {
+			
+		},
+		async onLoad(query) {
+			
+			if (query && query.ischeck) {
+				this.ischeck = true
+				this.title = "查看楼宇信息";
+			}
+			if (query && query.id && !query.ischeck) {
+				this.title = "修改楼宇信息";
+			}
+			if (query && query.id) {
+				let {
+					data
+				} = await loginService.queryByIdBuild(query.id)
+				console.log(data)
+				if (data.pic != null) {
+					data.pic = data.pic.split(",")
+					var list = data.pic
+					list.forEach(item => {
+						this.picUrl.push({
+							'url': item,
+							'uuid': item
+						})
+						this.picLists.push({
+							'url': item,
+							'uuid': item
+						})
+					})
+				} else {
+					data.pic = []
+				}
+				this.inputForm = this.recover(this.inputForm, data)
+			}
+		},
+		methods: {
+			getParkList() {
+				loginService.parkList({
+					current: 1,
+					size: 1000000,
+				}).then(({
+					data
+				}) => {
+					this.parkList = data.records.map((item) => {
+						return {
+							label: item.parkName,
+							value: item.id
+						}
+					})
+					console.log(this.parkList, '=============>')
+				}).catch(e => {
+					console.log(e)
+				})
+			},
+			
+			bindPickerChange: function(e) {
+				if(e.detail.value==0){
+					this.t1='产品名称';
+					this.t1s= '请填写产品名称';
+					this.t2= '产品产能';
+					this.t2s= '请填写产品产能';
+				}else{
+					this.t1='需求名称';
+					this.t1s= '请填写需求名称';
+					this.t2= '需求数量';
+					this.t2s= '请填写需求数量';
+				}
+								
+				console.log('picker发送选择改变,携带值为', e.detail.value)
+				this.index = e.detail.value;
+				this.inputForm.des1=e.detail.value+1;
+			},
+			
+			// 获取上传进度
+			progress(e) {
+				console.log('上传进度:', e)
+			},
+			// 上传成功
+			success(e) {
+				console.log('上传成功')
+			},
+			// 上传失败
+			fail(e) {
+				console.log('上传失败:', e)
+			},
+			deleteFile(e) {
+				this.picUrl.splice(e.index, 1)
+			},
+			// 获取上传状态
+			select(e) {
+				console.log('选择文件:', e)
+				var _this = this
+				var i = 0
+				upload()
+
+				function upload() {
+					if (i >= e.tempFiles.length) {
+						return;
+					}
+					var item = e.tempFiles[i]
+					uni.showLoading({
+						title: "上传中",
+						mask: true
+					});
+					uni.uploadFile({
+						url: '/yd_qycpfb/file/upload?uploadPath=userdir', // 仅为示例,非真实的接口地址
+						filePath: item.url,
+						name: 'file',
+						formData: {
+							'fileName': item.name
+						},
+						header: {
+							'token': _this.$auth.getUserToken()
+						},
+						success: (res) => {
+							var data = res.data
+							if (typeof data['error'] != "undefined") {
+								uni.showToast({
+									icon: 'none',
+									title: '上传失败,请联系开发!'
+								});
+								_this.$refs.picFile.clearFiles(_this.picLists.length)
+							} else {
+								_this.picUrl.push({
+									url: data,
+									uuid: item.uuid
+								})
+								i++;
+								upload()
+							}
+						},
+						fail: () => {
+							uni.hideLoading();
+							uni.showToast({
+								icon: 'none',
+								title: '上传失败,请联系开发!'
+							});
+							_this.$refs.picFile.clearFiles(_this.picLists.length)
+						},
+						complete: function() {
+							uni.hideLoading();
+						}
+					});
+				}
+			},
+			formSubmit: function(e) {
+				//定义表单规则
+				var rule = [{
+						name: "des2",
+						checkType: "notnull",
+						checkRule: "",
+						errorMsg: "名称不能为空"
+					},
+				];
+				//进行表单检查
+				var formData = this.inputForm;
+				var checkRes = graceChecker.check(formData, rule);
+				console.log(checkRes, '===================>checkRes')
+				if (checkRes) {
+					uni.showLoading()
+					this.inputForm.des6 = [];
+					this.picUrl.forEach(item => {
+						this.inputForm.des6.push(item.url)
+					})
+					this.inputForm.des6 = this.inputForm.des6.toString();
+					
+					loginService.productSave(this.inputForm).then(({
+						data
+					}) => {
+						uni.showToast({
+							title: "产品供需发布成功!",
+							icon: "success"
+						});
+						uni.navigateTo({
+							url: '/pages/product/productList?w=1'
+						})
+					}).catch((e) => {
+
+					})
+
+				} else {
+					uni.showToast({
+						title: graceChecker.error,
+						icon: "none"
+					});
+				}
+			}
+		}
+	}
+</script>
+<style>
+	/* .file-title) {
+	    font-size: 17px !important;
+	} */
+	input,textarea{
+		color: #8799a3;
+	}
+	.input1{
+		background-color: #ffffff;
+		padding: 1upx 40upx;
+		display: flex;
+		align-items: center;
+		padding-top: 20upx;
+		border-bottom: 1px solid #eee;
+	}
+	.input1 .title {
+		text-align: justify;
+		padding-right: 30upx;
+		font-size: 30upx;
+		position: relative;
+		height: 60upx;
+		line-height: 60upx;
+		border: ;
+	}
+	.title2{
+		width: 75%;
+		text-align: left;
+	}
+	.input2 {
+		flex: 1;
+		font-size: 30upx;
+		color: #555;
+		padding-right: 20upx;
+	}
+	.uni-input{
+		
+	}
+</style>

+ 588 - 0
jp-mobile/pages/product/productInfo.vue

@@ -0,0 +1,588 @@
+<template>
+	<view>
+		<view class="overlay" v-if="showfx" @click="showwx">
+			<image style="height: 100%;width: 100%;" src="/static/img/zz.png"></image>
+		</view>
+		
+		
+		<view :class="['custom-header', { 'is-back': isBack }, bgColor]">
+			<view class="back-container" @click="handleBack">
+			  <view class="back-text">返回</view>
+			</view>
+			<view class="content-container">
+			  <view class="content-text">{{title}}</view>
+			</view>
+		  </view>
+
+			
+		<swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000" :duration="800">
+		  <swiper-item v-for="(item, index) in swiperList" :key="index">
+		    <image :src="item.url" class="swiper-item"></image>
+		  </swiper-item>
+		</swiper>
+		
+		<form class="cu-list menu">
+			
+			<view class="show1">
+				
+				<view class="textbg">
+					<view class="text1">
+						 企业名称
+					</view>
+					<view class="text2" >
+						 {{inputForm.des5}}
+					</view>				
+				</view>
+				
+				<view class="textbg">
+					<view class="text1">
+						 供需类型
+					</view>
+					<view class="text2" >
+						 {{inputForm.des1}}
+					</view>				
+				</view>
+				
+				<view class="textbg">
+					<view class="text1">
+						 发布时间
+					</view>
+					<view class="text2" >
+						 {{inputForm.updateDate}}
+					</view>				
+				</view>
+			</view>
+
+			<view class="titlebg2">
+				<view class="titlet1" ></view>
+				<view class="titlet2" >供需基本信息</view>								
+			</view>
+			
+			
+			<view class="textbg">
+				<view class="text12">
+					 {{t1}}
+				</view>
+				<view class="text22">
+					 {{inputForm.des2}}
+				</view>				
+			</view>
+			
+			<view class="textbg">
+				<view class="text12">
+					 {{t2}}
+				</view>
+				<view class="text22">
+					 {{inputForm.des3}}
+				</view>				
+			</view>
+			
+			<view class="textbg">
+				<view class="text12">
+					 {{t3}}
+				</view>
+				<view class="text221">
+					 {{inputForm.des4}}
+				</view>				
+			</view>
+			
+			
+
+					
+			
+			<view style="height: 40rpx;"></view>
+
+
+			<view class="padding-xl" v-if="isadmin&&inputForm.des6=='1'">
+				<button @click="sharezz" class="cu-btn block bg-blue margin-tb-sm lg">分享此企业账号</button>
+			</view>
+		</form>
+	</view>
+</template>
+
+<script>
+	import loginService from '@/api/auth/loginService.js'
+	import { wxShare } from "@/common/wxutils.js";
+	export default {
+		onShow() {
+			//this.$auth.checkLogin()
+		},
+		data() {
+			return {
+				title: '产品供需详情',
+				isBack: true, // 是否显示返回按钮
+			    backText: '返回', // 返回按钮的文本
+			    bgColor: 'bg-blue', // 背景颜色
+				autoUpload: false,
+				swiperList: [
+				        // 可以继续添加更多图片
+				      ],
+				inputForm: {
+					id: '',
+					name: '',
+					industry: '',
+					des1: '',
+					des2: '',
+					des3: '',
+					des4: '',
+					des5: '',					
+					des6: '',
+					des7: '',
+					des8: '',
+					des9: '',
+					updateDate: '',
+				},
+				t1: '产品名称',
+				t2: '产品产能',
+				t3: '详细描述',
+				text1:'',
+				text2:'',
+				parkList: [],
+				ischeck: false,
+				isLogin:"",
+				username:"",
+				isadmin:false,
+				lyIndex: '',
+				showLYList: [],
+				showfx:false,
+			}
+		},
+		created() {
+		},
+		mounted() {
+			
+		},
+		onLoad(query) {
+			this.isLogin=this.$auth.checkisLogin();
+			this.username=this.$auth.getUserInfo();
+			if(this.username!=undefined&&this.username!=''&&this.username!=null&&this.isLogin!=null){
+				if(this.username.loginName=='admin'){
+					this.isadmin=true;
+				}
+			}
+			
+			if (query && query.ischeck) {
+				this.ischeck = true
+			}
+			if (query && query.id && !query.ischeck) {
+				this.title = "修改企业信息";
+			}
+			this.getComById(query)
+			
+
+			
+		},
+		methods: {
+			getParkList(query) {
+				loginService.list({
+					current: 1,
+					size: 1000000,
+				}).then(({
+					data
+				}) => {
+					this.parkList = data.records.map((item) => {
+						return {
+							label: item.buildingName,
+							value: item.id
+						}
+					})
+					this.showLYList = this.parkList.map(item => item.label)
+					if (query && query.id) {
+						loginService.queryByIdPro(query.id).then(({
+							data
+						}) => {
+							this.inputForm = this.recover(this.inputForm, data)
+							this.lyIndex = this.parkList.findIndex(item => item.value == this.inputForm.des1)
+							console.log(this.lyIndex, '=====================>lyIndex')
+						}).catch((e) => {
+						
+						})
+						
+					}
+				}).catch(e => {
+					console.log(e)
+				})
+			},
+			
+			handleBack() {
+			      // 返回逻辑,比如跳转至上一页
+				  this.$router.go(-1);
+			      console.log('返回按钮被点击');
+			},
+			showwx() {
+			     this.showfx=false;
+			},
+			
+			getComById(query) {
+				loginService.queryByIdPro(query.id).then(({
+					data
+				}) => {
+					//未登录
+					// if(this.isLogin==null){
+					// 	console.log('未登录')
+					// 	//不做处理后台已做处理
+						
+						if(data.des1=='1'){
+							data.des1="供"
+						}else{
+							data.des1="需"
+						}
+						this.setData(data);						
+					// }else{
+					// 	this.setData(data);
+					// }
+					
+				}).catch((e) => {
+				
+				})
+			},
+			
+			
+			//账号分享
+			sharezz(){
+				var that=this;
+				setTimeout(function() {
+				  that.showfx=true;
+				  console.log("1"+ this.showfx);
+				}, 500); // 2000毫秒后执行
+				
+				loginService.getloginstr(this.inputForm.phone).then(({
+					data
+				}) => {
+					//未登录
+					if(data.Id=='0'){
+						uni.showModal({
+							title: '您无权限分享账号,请联系管!',
+							showCancel: true,
+							success: (res) => {
+								
+							}
+						});
+												
+					}else{
+						
+						this.weixin(data);
+						
+						// const textArea = document.createElement("textarea");
+						// textArea.value = 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id;
+						// document.body.appendChild(textArea);
+						// textArea.focus();
+						// textArea.select();
+						// try {
+						//   document.execCommand('copy');
+						//   uni.showModal({
+						//   	title: '已将登录链接复制到剪切板,直接打开微信好友粘贴分享!',
+						//   	showCancel: true,
+						//   	success: (res) => {
+						  		
+						//   	}
+						//   });
+						// } catch (err) {
+						//   console.error('Could not copy text', err);
+						//   uni.showModal({
+						//   	title: '当前不支持分享功能!',
+						//   	showCancel: true,
+						//   	success: (res) => {
+						  		
+						//   	}
+						//   });
+						// } finally { 
+						//   document.body.removeChild(textArea); 
+						// }
+					}
+					
+				}).catch((e) => {
+				
+				})
+				
+				
+				
+
+				
+				  
+				
+				
+				
+				
+			},
+			
+			
+			    async weixin(data) {
+					
+
+			      try {
+
+			        if ( data) {
+			          //微信加签
+			          var obj = {
+			            appId: data.appid,
+			            nonceStr: data.nonceStr,
+			            signature: data.signature,
+			            timestamp: data.timestamp,
+						Id: data.Id,
+			          }
+			          //分享数据,这段主要是为了在hash模式下分享出去的链接不被浏览器截取,保证完全把链接分享出去(link的链接可以自己拼,无须与当前页面的后缀参数之类的内容完全一致)
+			          let shareData = {
+			            title: '盐都区工业企业产品发布平台',
+			            desc: '点击直接登录',
+			            imgUrl: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/static/img/titlebg.jpg',
+			            link: 'https://miniapp.huidutech.com.cn/yd_qycpfbH5/#/pages/index/index?loginid='+data.Id + "&t=" + data.timestamp + "&Content=1", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致																		
+						
+			          };
+
+			          //引用
+			          wxShare(obj, shareData);
+					  
+			        } else {
+					  uni.showModal({
+					  	title: '获取sdk参数失败!',
+					  	showCancel: true,
+					  	success: (res) => {
+					  		
+					  	}
+					  });
+			        }
+			      } catch (err) {
+			        //
+			      } finally {
+			        //
+			      }
+			    },
+			
+			
+			setData(data){
+				this.inputForm = this.recover(this.inputForm, data)
+				
+				
+				if(this.inputForm=='供'){
+					this.t1='产品名称';
+					this.t2= '产品产能';
+				}else{
+					this.t1='需求名称';
+					this.t2= '需求数量';
+				}
+				
+				
+				let pics=this.inputForm.des6.split(",");
+				
+				pics.forEach(item => {
+					this.swiperList.push({
+						'url': "http://47.97.69.114:8089/yd_qycpfbWeb/"+item,
+					})
+				})
+
+			},
+			
+			goToCompany(companyName) {
+				  //https://www.qcc.com/web/search?key=
+					
+				  window.open("https://www.qcc.com/web/search?key="+companyName);
+			      //window.location.href = `https://www.qcc.com/company/${encodeURIComponent(companyName)}`;
+			},
+			
+			call1(){
+				
+				// uni.navigateTo({
+				// 	url: '/pages/index/AudioToWord'
+				// })
+				
+				// uni.navigateTo({
+				// 	url: '/pages/comList/comList'
+				// })
+				
+				//未登录
+				if(this.isLogin==null){
+					uni.showModal({
+						title: '您还未登录,是否跳转登录页面?',
+						showCancel: true,
+						success: (res) => {
+							if (res.confirm) {
+								
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
+								
+							}
+						}
+					});
+				}else{
+					window.location.href = 'tel:'+this.inputForm.phone;
+				}
+								
+			},
+			
+			call2(){
+				//未登录
+				if(this.isLogin==null){
+					uni.showModal({
+						title: '您还未登录,是否跳转登录页面?',
+						showCancel: true,
+						success: (res) => {
+							if (res.confirm) {
+								
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
+								
+							}
+						}
+					});
+				}else{
+					window.location.href = 'tel:'+this.inputForm.bz6;
+				}
+			},
+			
+
+
+
+
+
+			
+		}
+	}
+</script>
+<style>
+	/* .file-title) {
+	    font-size: 17px !important;
+	} */
+	input,textarea{
+		color: #8799a3;
+	}
+	
+	.swiper {
+		width: 750rpx;
+		height: 310rpx;
+	}
+	
+	.swiper-item {
+		width: 750rpx;
+		height: 310rpx;
+		background-color: aliceblue;
+	}
+	.show1{
+		background-color: #2752eb;
+		padding-left: 8rpx;
+	}
+	.textbg{
+		display: flex;
+		background-color: white;
+		padding-top: 29rpx;
+	}
+	.text1{
+		width: 200rpx;
+		margin-left: 30rpx;
+		color: #333333;
+		font-size: 30rpx;
+	}
+	.text12{
+		width: 200rpx;
+		margin-left: 30rpx;
+		color: #000000;
+		font-size: 29rpx;
+	}
+		
+	.text2{
+		flex: 1;
+		color: #000000;
+		font-size: 30rpx;
+		padding-bottom: 2rpx;
+	}
+	.text22{
+		flex: 1;
+		color: #666666;
+		font-size: 29rpx;
+		padding-bottom: 2rpx;
+	}
+	
+	.text221{
+		flex: 1;
+		min-height: 700rpx;
+		color: #666666;
+		font-size: 29rpx;
+		padding-right:15rpx ;
+		padding-bottom: 2rpx;
+	}
+	.text3{
+		display: flex;
+		color: #000000;
+	}
+	.phone{
+		display: flex;
+		color: #1E8AD7;
+		padding-left: 5rpx;
+		padding-right: 5rpx;
+		font-size: 30rpx;
+		align-items: center
+	}
+	.phoneimg{
+		margin-left: 10rpx;
+		width: 35rpx;
+		height: 35rpx;
+	}
+	.titlebg2{
+		display: flex;
+		background-color: white;
+		padding-left: 22rpx;
+		padding-top: 35rpx;
+		padding-bottom: 25rpx;
+		margin-bottom: 2rpx;
+	}
+	.titlet1{
+		width: 7rpx;
+		margin-top: 7rpx;
+		margin-bottom: 7rpx;
+		background-color: #2752eb;
+		margin-right: 8rpx;
+	}
+	.titlet2{
+		font-weight: 800;
+		color: #2752eb;
+	}
+	.overlay{
+	  position: fixed; /* 固定定位,覆盖整个页面 */
+	  top: 0;
+	  left: 0;
+	  width: 100%;
+	  height: 100%;
+	  background-color: rgba(255, 255, 255, 0.5); /* 半透明白色背景 */
+	  z-index: 1000; /* 确保遮罩在页面内容之上 */
+	}
+	
+	
+	.custom-header {
+	  display: flex;
+	  align-items: center;
+	  justify-content: center;
+	  padding: 10px;
+	  width: 100%;
+	}
+	
+	.is-back {
+	  position: relative;
+	}
+	
+	.back-container {
+	  position: absolute;
+	  left: 10px;
+	  cursor: pointer;
+	}
+	
+	.back-text {
+	  color: white; /* 返回按钮文本颜色 */
+	}
+	
+	.content-container {
+	  flex: 1;
+	  text-align: center;
+	}
+	
+	.content-text {
+	  color: white; /* 标题文本颜色 */
+	  font-weight: bold;
+	}
+	
+	/* 背景颜色 */
+	.bg-blue {
+	  background-color: #4285f4; /* 假设这是一个蓝色背景 */
+	}
+</style>

+ 854 - 0
jp-mobile/pages/product/productList.vue

@@ -0,0 +1,854 @@
+<template >
+	<view>
+
+		<view :class="['custom-header', { 'is-back': isBack }, bgColor]">
+			<view class="back-container" @click="handleBack">
+			  <view class="back-text">返回</view>
+			</view>
+			<view class="content-container">
+			  <view class="content-text">{{title}}</view>
+			</view>
+		  </view>
+
+
+		<view class="line-box">
+					
+			
+			<view :style="[{top:CustomBar + 'px'}]">
+				
+			
+				<view class="tabs" v-if="md=='1'">
+				  <view 
+					v-for="(tab, index) in tabs" 
+					:key="index" 
+					class="tab-item" 
+					:class="{ active: activeTab === index }" 
+					@click="switchTab(index)"
+				  >
+					{{ tab.name }}
+				  </view>
+				</view>
+				
+							
+				<view class="search-box"  >
+					
+							
+					<view class="choose-box2" style="margin-top: 10rpx;">
+						<view style="width: 520rpx;">
+							<input type="text"  placeholder="输入关键词产品或企业名称" v-model="searchForm.qyName" confirm-type="search"
+							></input>
+						</view>
+						
+						<text style="padding-left: 40rpx;flex: 1;" class="cuIcon-search color-white" @click="doSearch"></text>
+					</view>
+														
+				</view>
+				
+				
+				
+				<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" :up="upOption" @up="upCallback">
+					<view class="cu-item" :class="modalName=='move-box-'+ index?'move-cur':''"
+						v-for="(item, index) in dataList" :key="index" @touchstart="ListTouchStart"
+						@touchmove="ListTouchMove" @touchend="ListTouchEnd" :data-target="'move-box-' + index">
+						
+						
+						<view class="item-box" @click="gotoBuildInfo(item.id)">
+							<view class="item-title">
+								
+								<view>
+									{{item.des5}}
+								</view>
+								<view class="item-name31" v-if="item.des1=='1'">供</view>
+								<view class="item-name3" v-if="item.des1=='2'">需</view>
+							</view>
+							<view class="item-line">
+									
+								<view class="item-name">{{item.des2}}</view>	
+							</view>
+							<view class="item-line">
+								<text class="item-name2">{{item.des4}} </text>
+								<view class="item-name3"></view>
+							</view>
+			
+						</view>
+											
+						
+					</view>
+				</mescroll-body>
+				<uni-fab :pattern=" {
+								color: '#7A7E83',
+								backgroundColor: '#fff',
+								selectedColor: '#007AFF',
+								buttonColor: '#007AFF'
+							}" horizontal="right" vertical="bottom" @fabClick="add" ></uni-fab>
+							
+				<!-- <view   @click="outlogin" class="fixed-bottom-right" v-if="isLogin!=null">
+					<image  class="center-img2" src="/static/img/icon_logout.png"></image>
+				</view> -->
+							
+			</view>
+			
+			
+			
+			
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	import loginService from "@/api/auth/loginService";
+	import uniFab from '@/components/uni-fab/uni-fab.vue';
+	import DoublePicker from '@/components/DoublePicker/DoublePicker.vue'
+	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
+	import MescrollMoreItemMixin from "@/components/mescroll-uni/mixins/mescroll-more-item.js";
+	import {mapActions} from 'vuex'
+	export default {
+		mixins: [MescrollMixin, MescrollMoreItemMixin], // 使用mixin (在main.js注册全局组件)
+		name: "apps",
+		components: {
+			uniFab,
+			DoublePicker
+		},
+		data() {
+			return {
+				isLogin:"",
+				pageInfo: {},
+				loginid:"",
+				title:"产品供需",
+				isBack: true, // 是否显示返回按钮
+				bgColor: 'bg-blue', // 背景颜色
+				tabs: [
+				        { name: '全部' },
+				        { name: '供' },
+				        { name: '需' }
+				      ],
+				activeTab: 0,
+				stype: "", // 企业 => 3  楼宇 => 2  园区 => 1  zfadmin => 4  admin=> 5
+				md:"1",
+				searchForm: {
+					des1:"",
+					des10:"",
+					qyName:"",
+				},
+				
+				curWord: "", //当前搜索关键词
+				dataList: [], // 数据列表
+				modalName: null,
+				tablePage: {
+					total: 0,
+					currentPage: 1,
+					pageSize: 10,
+					orders: []
+				},
+				loading: false,
+				parkId: '',
+				parkList: [],
+				parkList2: [],
+				parkList3: [],
+				parkList4: [],
+				ddd1:"" ,
+			};
+		},
+		onLoad(query) {
+			if(query!=undefined&&query!=null&&query!=''){
+				if(query.loginid!=undefined){
+					this.loginid=query.loginid
+					this.autoLogin();
+				}		
+					
+				if (query && query.w=='1' ) {
+					this.md = "1";					
+					this.title="产品供需";
+				}else if(query && query.w=='2'){
+					this.md = "2";
+					this.title="我的发布";
+					this.searchForm.des10="1";
+				}	
+			}			
+		},
+		onShow() {
+			this.isLogin=this.$auth.checkisLogin();
+		},
+		
+		created() {
+			//this.getPageInfo();
+			//this.getParkList()
+			//this.getParkList2()	
+			//this.getParkList3()	
+		},
+
+
+		methods: {
+			...mapActions(['refreshUserInfo']),
+			
+					
+			
+			
+			/*获取数据列表 */
+			upCallback(page) {
+				this.loading = true
+				loginService.enterpriseother({
+					current: page.num,
+					size: page.size,
+					
+					orders: [{ column: 'a.create_date', asc: false }],
+					...this.searchForm
+				}).then(({
+					data
+				}) => {
+					let curPageData = data.records
+					this.mescroll.endBySize(curPageData.length, data.total);
+					//如果是第一页需手动制空列表
+					if (page.num == 1)
+						this.dataList = [];
+					//追加新数据
+					this.dataList = this.dataList.concat(curPageData);
+				}).catch(e => {
+					//联网失败, 结束加载
+					this.mescroll.endErr();
+				})
+			},
+			
+			gotoBuildInfo(id) {
+				uni.navigateTo({
+					url: `/pages/product/productInfo?id=${id}&ischeck=1`
+				})
+				
+				//window.location.href=`/yd_qycpfbH5/#/pages/comEdit/comEdit?id=${id}&ischeck=1`
+				
+			},
+			
+			updateCities(newCities) {
+			      this.cities = newCities;
+			},
+			
+			
+			// 搜索
+			doSearch() {				
+				
+				this.dataList = []; // 先清空列表,显示加载进度
+				this.mescroll.resetUpScroll();
+			},
+			
+			totongxunlu(){
+				uni.navigateTo({
+					url: '/pages/comList/comList'
+				})
+			},
+			
+			totongxunlu2(){
+				uni.showModal({
+					title: '功能暂未开放,请至后台导入!',
+					showCancel: true,
+					success: (res) => {
+						
+					}
+				});
+			},
+			
+			
+			
+			getPageInfo() {
+			  loginService.InfoStatistics({}).then(({ data }) => {
+			    this.pageInfo = data;
+			  });
+			
+			
+			},
+			
+			autoLogin(){
+			  	console.log("登录id"+this.loginid);			
+				loginService.loginid( this.loginid).then(({data}) => {
+				  this.$store.commit('SET_TOKEN',data.token);
+				  this.refreshUserInfo();
+				  
+				}).catch(e => {
+				  console.error(e)
+				})	
+			},
+
+			getRole() {
+				let userInfo = uni.getStorageSync('WMS-userinfo')
+				var officeId = userInfo.officeDTO.id;
+				var roleIds = userInfo.roleIds;
+				if (roleIds.indexOf("17bac1f980264e3e8193bc965538e2c6") != -1) {
+					//// 管理员
+					this.stype = 5
+					uni.setStorageSync('stype', this.stype);
+				} else if (roleIds.indexOf("ade960e8f02544998b07397304c059c1") != -1) {
+					// 政府管理员
+					this.stype = 4
+					uni.setStorageSync('stype', this.stype);
+				} else {
+					console.log('==================>这里走了么','================>存一个stape')
+					loginService
+						.getOtherIdByOffceid({
+							officeid: officeId,
+						})
+						.then(({
+							data
+						}) => {
+							console.log(data, "====================>getOtherIdByOffceid");
+							this.stype = data.stype;
+							uni.setStorageSync('stype', this.stype);
+						});
+				}
+				
+			},
+
+            outloginset(){				
+				loginService.logout().then(({
+					data
+				}) => {
+					this.$store.commit('logout');
+					uni.clearStorage();
+					
+				})
+				
+				this.$store.commit('logout');
+				uni.clearStorage();
+				this.isLogin=this.$auth.checkisLogin();
+				uni.hideLoading()
+			},
+
+			outlogin() {
+				uni.showModal({
+					title: '您确认退出么?',
+					showCancel: true,
+					success: (res) => {
+						if (res.confirm) {
+							uni.showLoading()
+							this.outloginset();
+							// uni.reLaunch({
+							// 	url: '/pages/login/login'
+							// })
+						}
+					}
+				});
+			},
+			tces() {
+				uni.navigateTo({
+					url: '/pages/index/AudioToWord'
+				})
+			},
+			
+			// ListTouch触摸开始
+			ListTouchStart(e) {
+				this.listTouchStart = e.touches[0].pageX
+			},
+			
+			// ListTouch计算方向
+			ListTouchMove(e) {
+				this.listTouchDirection = e.touches[0].pageX - this.listTouchStart > -60 ? 'right' : 'left'
+			},
+			
+			// ListTouch计算滚动
+			ListTouchEnd(e) {
+				if (this.listTouchDirection == 'left') {
+					this.modalName = e.currentTarget.dataset.target
+				} else {
+					this.modalName = null
+				}
+				this.listTouchDirection = null
+			},
+			handleBack() {
+			      // 返回逻辑,比如跳转至上一页
+				  this.$router.go(-1);
+			},
+			
+			add(){
+				
+				if(this.isLogin==null){
+					uni.showModal({
+						title: '您还未登录,现在去登录?',
+						showCancel: true,
+						success: (res) => {
+							if (res.confirm) {
+								uni.showLoading()
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
+							}
+						}
+					});
+				}else{
+					uni.navigateTo({
+						url: '/pages/product/productAdd?w=1'
+					})
+				}
+				
+				
+			},
+			switchTab(index) {
+			  this.activeTab = index;
+			  if(this.activeTab==0){
+				  this.searchForm.des1="";
+			  }else{
+				  this.searchForm.des1=this.activeTab;
+			  }
+			  
+			  this.doSearch();
+			  
+			}
+		}
+	}
+</script>
+
+<style>
+	.page {
+		height: 100vh;
+	}
+
+	.line-box {
+
+		padding-left: 20rpx;
+		padding-right: 20rpx;
+		margin-top: 20rpx;
+
+	}
+
+	.mart-t {
+		margin-top: 30rpx;
+	}
+	
+	.center-box{
+		margin-top: 20rpx;
+		width: 100%;
+		border-radius: 25rpx;
+		border-radius: 25rpx;		
+		background: #fff;
+		box-shadow: 0px 8px 16px 2px rgba(101, 101, 101, 0.2);
+		padding-bottom: 30rpx;
+		display: flex;
+		flex-wrap: wrap;
+	}
+	
+	.center-left-box {
+		width: 100%;		
+		padding-bottom: 30rpx;
+		display: flex;
+		flex-wrap: wrap;
+	}
+	
+	.btn-box-text {
+		flex:1;
+		height: 20rpx;
+		text-align: center;
+		color: #000000;
+		font-size: 14px;
+		font-weight: 700;
+	}
+
+	.btn-box-1 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color: #36A7F3;
+		font-size: x-large;
+		font-weight: 700;
+	}
+
+	.btn-box-2 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color:#F3365A;
+		font-size: x-large;
+		font-weight: 700;
+	}
+
+	.btn-box-3 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color:#15D578;
+		font-size: x-large;
+		font-weight: 700;
+	}
+
+	.btn-box-4 {
+		flex:1;
+		height: 30rpx;
+		text-align: center;
+		color:#F1A31B;
+		font-size: x-large;
+		font-weight: 700;
+	}
+	
+	.btn-Imbox {
+		flex:1;
+		height: 150rpx;
+		padding-top: 8rpx;
+		text-align: center;
+		display: flex;
+		flex-direction: column;
+		justify-content: center; /* 子元素内部内容竖向居中 */
+		align-items: center; /* 子元素内部内容水平居中 */
+		text-align: center; /* 文字居中 */
+		
+	}
+	.btn-Imbox p {
+	  font-size: 14px; /* 文字大小,可根据需要调整 */
+	  margin: 0; /* 去掉默认的外边距 */
+	  font-weight: 700;
+	}
+	
+	.center-img{
+		width: 90rpx;
+		height: 90rpx;
+		margin-bottom: 10rpx;
+		text-align: center;
+	}
+	
+	.center-img2{
+		width: 70rpx;
+		height: 70rpx;
+		margin-top: 10rpx;
+		margin-bottom: 20rpx;
+		text-align: center;
+	}
+	
+	.kuai-text{
+		color: #000000;
+		font-weight: 900;
+		font-size: 34rpx;
+		padding-top: 20rpx;
+		padding-left: 20rpx;
+	}
+
+	.btn-box-5 {
+		width: 337rpx;
+		height: 200rpx;
+		background-image: url('../../static/img/btn3.png');
+		background-size: 100% 100%;
+	}
+
+	.btn-box-6 {
+		width: 337rpx;
+		height: 200rpx;
+		background-image: url('../../static/img/btn6.png');
+		background-size: 100% 100%;
+	}
+
+	.h-200 {
+		height: 200rpx;
+	}
+
+	.swiper {
+		width: 750rpx;
+		height: 310rpx;
+	}
+
+	.swiper-item {
+		width: 750rpx;
+		height: 310rpx;
+		background-color: aliceblue;
+	}
+
+	.font-size-35 {
+		font-size: 35px !important;
+	}
+
+	.img-size {
+		width: 80rpx;
+		height: 80rpx;
+	}
+
+	.content-box {
+		width: 437rpx;
+		height: 200rpx;
+	}
+
+	.my-app .padding-sm {
+		padding: 6px;
+	}
+
+	.grid .padding-sm .bg-white {
+		box-shadow: 0 1px 4px #f9f9f9, 1px 1px 40px rgba(0, 0, 0, .06);
+	}
+
+	.bg-blue {
+		background: #fff;
+		color: #0081ff !important;
+	}
+
+	.text-white,
+	.line-white,
+	.lines-white {
+		color: #0081ff !important;
+	}
+	
+	
+	
+	
+	.cu-bar .search-form {
+		background-color: white;
+	}
+	
+	
+	.item-box{
+		width: 710rpx;
+		background: #FFFFFF;
+		box-shadow: 0px 1px 3px 0px rgba(9,2,4,0.1);
+		border-radius: 10px;
+		padding-top: 20rpx;
+		padding-left: 38rpx;
+		padding-right: 10rpx;
+		margin-top: 20rpx;
+	}
+	
+	.item-title{
+		position: relative;
+		display: flex;
+		justify-content: space-between;
+		font-size: 30rpx;
+		color: #010101;
+		font-weight: bold;
+		align-items: center;
+	}
+	
+	.item-line{
+		display: flex;
+		height: 48rpx;
+		margin-top: 20rpx;
+
+	}
+	
+	.item-line2{
+		
+		height: 48rpx;
+		margin-top: 20rpx;
+	}
+	
+	.subtitle{
+		color: #E5880E;
+	}
+	
+	.item-name{
+		margin-top: 5rpx;
+		font-size: 29rpx;
+		color: #666666;
+	}
+	
+	.item-name2{
+		font-size: 29rpx;
+		color: #676D99;
+		height: 40rpx; /* 这里假设两行的高度是80rpx */
+		overflow: hidden; /* 超出部分隐藏 */
+		text-overflow: ellipsis; /* 超出部分显示省略号 */
+		display: -webkit-box; /* 使用Webkit的行盒模型 */
+		-webkit-line-clamp: 1; /* 限制最多显示2行 */
+		-webkit-box-orient: vertical; /* 垂直排列 */
+		
+	}
+
+	
+	.item-name3{
+		display: flex;
+		width: 100%;
+		padding-right: 30rpx;
+		flex: 1;
+		justify-content: flex-end;
+		font-size: 29rpx;
+		color: #FF4500;
+	}
+	
+	.item-name31{
+		display: flex;
+		width: 100%;
+		padding-right: 30rpx;
+		flex: 1;
+		justify-content: flex-end;
+		font-size: 29rpx;
+		color: #2E8B57;
+	}
+	
+	.item-content{
+		color: #1497EF;
+		font-size: 30rpx;
+	}
+	
+	.btn-box{
+		display: flex;
+	}
+	
+	.line-zs{
+		width: 2rpx;
+		height: 30rpx;
+		background: #36A7F3;
+	}
+	
+	.edit-botton{
+		width: 100rpx;
+		height: 48rpx;
+		line-height: 48rpx;
+		color: #fff;
+		font-size: 28rpx;
+		margin-right: 20rpx;
+		border-radius: 10rpx;
+		background: #5A9EE9;
+		text-align: center;
+	}
+	
+	.del-botton{
+		width: 100rpx;
+		height: 48rpx;
+		line-height: 48rpx;
+		color: #fff;
+		font-size: 28rpx;
+		margin-right: 20rpx;
+		border-radius: 10rpx;
+		background: #F27C85;
+		text-align: center;
+	}
+	
+	.color-white{
+		color: #808080;
+		font-size: 40rpx;
+		line-height: 60rpx;
+	}
+	
+	.search-box{
+
+		padding-left: 20rpx;
+		padding-right: 20rpx;	
+		padding-top: 20rpx;
+		margin-top: 20rpx;
+		width: 100%;
+		border-radius: 25rpx;
+		border-radius: 25rpx;		
+		background: #fff;
+		box-shadow: 0px 8px 16px 2px rgba(101, 101, 101, 0.2);
+		padding-bottom: 30rpx;
+		display: flex;
+		flex-wrap: wrap;
+	}
+	
+	.search-box1{
+		display: flex;
+	}
+	
+	
+	
+	.input-box{
+		background: #fff;
+		height: 65rpx;
+		width: 640rpx;
+		display: flex;
+		align-items: center;
+		border-radius: 30rpx;
+		padding-left: 30rpx;
+		margin-right: 20rpx;
+	}
+	
+	.input-boxinput{
+		height: 75rpx;
+		font-size: 15rpx;
+	}
+	
+	
+	
+	.choose-box{
+		background: #fff;
+		width: 325rpx;
+		border-radius: 23rpx;
+		height: 70rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin-right: 20rpx;
+		border: 1rpx  solid #808080;
+	}
+	
+	.choose-box2{
+		background: #fff;
+		width: 100%;
+		border-radius: 23rpx;
+		height: 70rpx;
+		display: flex;
+		padding-left: 29rpx;
+		align-items: center;
+		border: 1rpx  solid #808080;
+	}
+	
+	.choose-box3{
+		display: flex;
+	}
+	
+	.choose-boxp{
+		font-size: 32rpx;
+		width: 80rpx;
+	}
+	
+	.fixed-bottom-right {
+		padding: 20rpx;
+	  position: fixed;
+	  bottom: 20px; /* 距离底部的距离 */
+	  right: 20px; /* 距离右侧的距离 */
+	}
+	
+	.tabs {
+	  display: flex;
+	  justify-content: space-around;
+	  margin-bottom: 10px;
+	}
+	
+	.tab-item {
+	  padding: 10px 10px;
+	  cursor: pointer;
+	  transition: all 0.3s;
+	}
+	.tab-item.active {
+	  color: #66b1ff;
+	  border-bottom: 2px solid #66b1ff;
+	}
+	
+	.tab-content {
+	  padding: 20px;
+	}
+	
+	.tab-item-content {
+	  display: none;
+	}
+	
+	.tab-item-content.v-if {
+	  display: block;
+	}
+	
+	
+	.custom-header {
+	  display: flex;
+	  align-items: center;
+	  justify-content: center;
+	  padding: 10px;
+	  width: 100%;
+	}
+	
+	.is-back {
+	  position: relative;
+	}
+	
+	.back-container {
+	  position: absolute;
+	  left: 10px;
+	  cursor: pointer;
+	}
+	
+	.back-text {
+	  color: white; /* 返回按钮文本颜色 */
+	}
+	/* 背景颜色 */
+	.bg-blue {
+	  background-color: #4285f4; /* 假设这是一个蓝色背景 */
+	}
+	.content-container {
+	  flex: 1;
+	  text-align: center;
+	}
+	.content-text {
+	  color: white; /* 标题文本颜色 */
+	  font-weight: bold;
+	}
+</style>

BIN
jp-mobile/static/img/add.png


BIN
jp-mobile/static/img/icon1.png


BIN
jp-mobile/static/img/icon2.png


BIN
jp-mobile/static/img/icon3.png


BIN
jp-mobile/static/img/icon4.png


BIN
jp-mobile/static/img/icon5.png


BIN
jp-mobile/static/img/icon6.png


BIN
jp-mobile/static/img/icon7.png


BIN
jp-mobile/static/img/login1.jpg


BIN
jp-mobile/static/img/logo.png


BIN
jp-mobile/static/img/mima.png


BIN
jp-mobile/static/img/yanzhengma.png


BIN
jp-mobile/static/img/zhanghao-.png


BIN
jp-mobile/static/img/zz.png


+ 21 - 18
jp-ui/src/views/modules/buildinginfo/BuildingManagementForm.vue

@@ -8,7 +8,7 @@
     <el-form :model="inputForm" size="small" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"  :disabled="method==='view'"
              label-width="120px">
       <el-row  :gutter="15">
-        <el-col :span="12">
+        <!-- <el-col :span="12">
             <el-form-item label="所属园区" prop="parkManagement.id"
                 :rules="[
                  ]">
@@ -51,16 +51,25 @@
             queryEntityUrl="/parkmanagement/parkManagement/queryById">
           </GridSelect>
            </el-form-item>
-        </el-col>
+        </el-col> -->
         <el-col :span="12">
-            <el-form-item label="楼宇名称" prop="buildingName"
+            <el-form-item label="园区名称" prop="buildingName"
                 :rules="[
-                  {required: true, message:'楼宇名称不能为空', trigger:'blur'}
+                  {required: true, message:'园区名称不能为空', trigger:'blur'}
                  ]">
-              <el-input v-model="inputForm.buildingName" placeholder="请填写楼宇名称"     ></el-input>
+              <el-input v-model="inputForm.buildingName" placeholder="请填写园区名称"     ></el-input>
            </el-form-item>
-        </el-col>
-        <el-col :span="12">
+        </el-col>
+
+        <el-col :span="24">
+            <el-form-item label="园区简介" prop="buildingDescribe"
+                :rules="[
+                 ]">
+          <el-input type="textarea" v-model="inputForm.buildingDescribe" placeholder="请填写园区简介"     ></el-input>
+           </el-form-item>
+        </el-col>
+
+        <!-- <el-col :span="12">
             <el-form-item label="楼宇经度" prop="buildingLongitude"
                 :rules="[
                  ]">
@@ -127,22 +136,16 @@
                    </el-select>
            </el-form-item>
         </el-col>
-        <el-col :span="12">
            <el-form-item label="楼宇状态" prop="reserve4"
                :rules="[
                 ]">
                <el-select v-model="inputForm.reserve4" placeholder="请选择"  style="width: 100%;">
                          <el-option
                            v-for="item in $dictUtils.getDictList('building_state')"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                          </el-option>
                      </el-select>
           </el-form-item>
        </el-col>
+        <el-col :span="12">
            <el-form-item label="楼宇状态" prop="reserve4"
                :rules="[
                 ]">
                <el-select v-model="inputForm.reserve4" placeholder="请选择"  style="width: 100%;">
                          <el-option
                            v-for="item in $dictUtils.getDictList('building_state')"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                          </el-option>
                      </el-select>
           </el-form-item>
        </el-col> -->
         <el-col :span="24">
-            <el-form-item label="图片" prop="picture"
+            <el-form-item label="产业布局图片" prop="picture"
                 :rules="[
                  ]">
 	      <image-upload v-model="inputForm.picture" :limit="3" tip="最多上传3个图片,单个图片不要超过10M"></image-upload>
            </el-form-item>
         </el-col>
-        <el-col :span="24">
-            <el-form-item label="楼宇产业定位" prop="buildingIndustry"
-                :rules="[
-                 ]">
-          <el-input type="textarea" v-model="inputForm.buildingIndustry" placeholder="请填写楼宇产业定位"     ></el-input>
-           </el-form-item>
-        </el-col>
-        <el-col :span="24">
+
+       <!-- <el-col :span="24">
             <el-form-item label="楼宇描述" prop="buildingDescribe"
                 :rules="[
                  ]">
@@ -155,7 +158,7 @@
                  ]">
           <el-input type="textarea" v-model="inputForm.notes" placeholder="请填写备注"     ></el-input>
            </el-form-item>
-        </el-col>
+        </el-col> -->
 
         </el-row>
     </el-form>

+ 12 - 12
jp-ui/src/views/modules/buildinginfo/BuildingManagementList.vue

@@ -2,7 +2,7 @@
     <div class="page">
       <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
             <!-- 搜索框-->
-            <el-form-item prop="reserve5">
+            <!-- <el-form-item prop="reserve5">
                <GridSelect
                  title="选择所属园区"
                  labelName = 'parkName'
@@ -38,11 +38,11 @@
                  dataListUrl="/parkmanagement/parkManagement/list"
                  queryEntityUrl="/parkmanagement/parkManagement/queryById">
                </GridSelect>
-            </el-form-item>
+            </el-form-item> -->
          <el-form-item prop="buildingName">
-                <el-input size="small" v-model="searchForm.buildingName" placeholder="楼宇名称" clearable></el-input>
+                <el-input size="small" v-model="searchForm.buildingName" placeholder="重点园区" clearable></el-input>
          </el-form-item>
-         <el-form-item prop="reserve4">
+         <!-- <el-form-item prop="reserve4">
                           <el-select v-model="searchForm.reserve4" placeholder="请选择状态" size="small" style="width: 100%;">
                             <el-option
                               v-for="item in $dictUtils.getDictList('building_state')"
@@ -57,7 +57,7 @@
          </el-form-item>
          <el-form-item prop="buildingArea">
                 <el-input size="small" v-model="searchForm.buildingArea" placeholder="楼宇总面积" clearable></el-input>
-         </el-form-item>
+         </el-form-item> -->
           <el-form-item>
             <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
             <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
@@ -118,7 +118,7 @@
             :checkbox-config="{}">
             <vxe-column type="seq" width="40"></vxe-column>
             <vxe-column type="checkbox"  width="40px"></vxe-column>
-      <vxe-column
+      <!-- <vxe-column
         field="parkManagement.parkName"
         sortable
         title="所属园区">
@@ -127,18 +127,18 @@
               <el-link  type="primary" :underline="false" v-else-if="hasPermission('buildinginfo:buildingManagement:view')"  @click="view(scope.row.id)">{{scope.row.parkName}}</el-link>
               <span v-else>{{scope.row.parkName}}</span>
             </template>
-      </vxe-column>
+      </vxe-column> -->
     <vxe-column
         field="buildingName"
         sortable
-        title="楼宇名称">
+        title="重点园区">
       </vxe-column>
     <vxe-column
-        field="buildingContacts"
+        field="buildingDescribe"
         sortable
-        title="楼宇联系人">
+        title="简介">
       </vxe-column>
-      <vxe-column
+      <!-- <vxe-column
           field="reserve2"
           sortable
           title="楼宇联系人电话">
@@ -168,7 +168,7 @@
         <template slot-scope="scope">
               {{ $dictUtils.getDictLabel("building_state", scope.row.reserve4, '-') }}
         </template>
-      </vxe-column>
+      </vxe-column> -->
     <vxe-column
         field="updateDate"
         sortable

+ 64 - 24
jp-ui/src/views/modules/enterpriseother/EnterpriseOtherForm.vue

@@ -16,7 +16,7 @@
                 <qy-select :limit='1' :value="inputForm.qyId" @getValue='(value) => {inputForm.qyId=value}'></qy-select>
            </el-form-item>
         </el-col>
-        <el-col :span="12">
+ <!--       <el-col :span="12">
             <el-form-item label="交租时间" prop="payTime"
                 :rules="[
                  ]">
@@ -28,35 +28,72 @@
                       placeholder="选择日期时间">
                     </el-date-picker>
            </el-form-item>
-        </el-col>
+        </el-col> -->
+
         <el-col :span="12">
-            <el-form-item label="车辆数" prop="carNum"
+            <el-form-item label="供需类别" prop="des1"
                 :rules="[
                  ]">
-              <el-input v-model="inputForm.carNum" placeholder="请填写车辆数"     ></el-input>
+                <el-select v-model="inputForm.des1" placeholder="请选择"  style="width: 100%;">
+                          <el-option
+                            v-for="item in $dictUtils.getDictList('gx_type')"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value">
+                          </el-option>
+                      </el-select>
            </el-form-item>
         </el-col>
-        <el-col :span="12">
-            <el-form-item label="用电能耗(度)" prop="electricityConsumption"
+
+        <el-col :span="12" v-if="inputForm.des1==1">
+            <el-form-item label="产品名称" prop="des2"
                 :rules="[
                  ]">
-              <el-input v-model="inputForm.electricityConsumption" placeholder="请填写用电能耗"     ></el-input>
+              <el-input v-model="inputForm.des2" placeholder="请填写产品名称"     ></el-input>
            </el-form-item>
         </el-col>
-        <el-col :span="12">
-            <el-form-item label="是否上市" prop="isListed"
+
+        <el-col :span="12" v-if="inputForm.des1==1">
+            <el-form-item label="产品产能" prop="des3"
                 :rules="[
                  ]">
-                <el-select v-model="inputForm.isListed" placeholder="请选择"  style="width: 100%;">
-                          <el-option
-                            v-for="item in $dictUtils.getDictList('yes_no')"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value">
-                          </el-option>
-                      </el-select>
+              <el-input v-model="inputForm.des3" placeholder="请填写产品产能"     ></el-input>
            </el-form-item>
         </el-col>
+
+        <el-col :span="12" v-if="inputForm.des1==2">
+            <el-form-item label="需求名称" prop="des2"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.des2" placeholder="请填写需求名称"     ></el-input>
+           </el-form-item>
+        </el-col>
+
+        <el-col :span="12" v-if="inputForm.des1==2">
+            <el-form-item label="需求数量" prop="des3"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.des3" placeholder="请填写需求数量"     ></el-input>
+           </el-form-item>
+        </el-col>
+
+        <el-col :span="24" >
+            <el-form-item label="详细描述" prop="des4"
+                :rules="[
+                 ]">
+          <el-input type="textarea" v-model="inputForm.des4" placeholder="请填写详细描述"     ></el-input>
+           </el-form-item>
+        </el-col>
+
+
+       <!-- <el-col :span="12">
+            <el-form-item label="用电能耗(度)" prop="electricityConsumption"
+                :rules="[
+                 ]">
+              <el-input v-model="inputForm.electricityConsumption" placeholder="请填写用电能耗"     ></el-input>
+           </el-form-item>
+        </el-col>
+
         <el-col :span="12">
             <el-form-item label="是否融资" prop="isFinancing"
                 :rules="[
@@ -119,7 +156,7 @@
                           </el-option>
                       </el-select>
            </el-form-item>
-        </el-col>
+        </el-col> -->
         </el-row>
     </el-form>
     <span slot="footer" class="dialog-footer">
@@ -143,15 +180,18 @@
         inputForm: {
           id: '',
           qyId: '',
-          payTime: '',
+          des1: '',
+          des2: '',
+          des3: '',
+          des4: '',
           carNum: '',
           electricityConsumption: '',
-          isListed: '',
-          isFinancing: '',
-          isHigh: '',
+          isListed: '0',
+          isFinancing: '0',
+          isHigh: '0',
           isCompetition: '',
-          eqNum: '',
-          isExpired: ''
+          eqNum: '0',
+          isExpired: '0'
         }
       }
     },

+ 32 - 9
jp-ui/src/views/modules/enterpriseother/EnterpriseOtherList.vue

@@ -5,7 +5,7 @@
          <el-form-item prop="qyId">
             <qy-select :limit='1' size="small" placeholder="请选择企业" :value="searchForm.qyId" @getValue='(value) => {searchForm.qyId=value}'></qy-select>
          </el-form-item>
-         <el-form-item prop="payTime">
+         <!-- <el-form-item prop="payTime">
                <el-date-picker
                     v-model="searchForm.payTime"
                     type="daterange"
@@ -20,7 +20,7 @@
          </el-form-item>
          <el-form-item prop="electricityConsumption">
                 <el-input size="small" v-model="searchForm.electricityConsumption" placeholder="用电能耗(度)" clearable></el-input>
-         </el-form-item>
+         </el-form-item> -->
           <el-form-item>
             <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
             <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
@@ -92,22 +92,44 @@
               <span v-else>{{scope.row.qyName}}</span>
             </template>
       </vxe-column>
+
     <vxe-column
-        field="payTime"
+        field="des1"
         sortable
-        title="交租时间">
+        title="供需类别">
+        <template slot-scope="scope" >
+            <div v-if="scope.row.des1==1">供</div>
+            <div v-if="scope.row.des1==2">需</div>
+        </template>
       </vxe-column>
+
     <vxe-column
-        field="carNum"
+        field="des2"
         sortable
-        title="车辆数">
+        title="明细">
+        <template slot-scope="scope" >
+            <div v-if="scope.row.des1==1">产品名称:  {{scope.row.des2}}</div>
+            <div v-if="scope.row.des1==2">需求名称:  {{scope.row.des2}}</div>
+        </template>
       </vxe-column>
+
     <vxe-column
-        field="electricityConsumption"
+        field="des2"
         sortable
-        title="用电能耗(度)">
+        title="明细">
+        <template slot-scope="scope" >
+            <div v-if="scope.row.des1==1">产品产能:  {{scope.row.des3}}</div>
+            <div v-if="scope.row.des1==2">需求数量:  {{scope.row.des3}}</div>
+        </template>
       </vxe-column>
+
+
     <vxe-column
+        field="des4"
+        sortable
+        title="产品(服务)描述">
+      </vxe-column>
+    <!-- <vxe-column
         field="isListed"
         sortable
         title="是否上市">
@@ -151,7 +173,7 @@
         <template slot-scope="scope">
               {{ $dictUtils.getDictLabel("yes_no", scope.row.isExpired, '-') }}
         </template>
-      </vxe-column>
+      </vxe-column> -->
       <vxe-column
         fixed="right"
         align="center"
@@ -227,6 +249,7 @@
           this.loading = false
         })
       },
+
       // 当前页
       currentChangeHandle ({ currentPage, pageSize }) {
         this.tablePage.currentPage = currentPage