lsw vor 1 Jahr
Ursprung
Commit
d40a73fa0f
23 geänderte Dateien mit 188 neuen und 92 gelöschten Zeilen
  1. 1 1
      admin-ui/src/App.vue
  2. 2 2
      admin-ui/src/views/dashboard/yrows.vue
  3. 3 4
      admin-ui/src/views/work/notice/notification.vue
  4. 28 35
      app/pages.json
  5. 34 7
      app/pages/index/index.vue
  6. 33 16
      app/pages/packages/index.vue
  7. 1 1
      app/uni_modules/uview-ui/components/u-swiper/u-swiper.vue
  8. 35 0
      ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_HomeController.java
  9. 2 0
      ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_NoticeController.java
  10. 2 4
      ruoyi-admin/src/main/java/com/ruoyi/web/work/api/config/InterceptorConfig.java
  11. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/ContractDetailController.java
  12. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/NoticeController.java
  13. 0 6
      ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Banner.java
  14. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/ContractDetail.java
  15. 4 0
      ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/BannerMapper.java
  16. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/ContractDetailMapper.java
  17. 2 0
      ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IBannerService.java
  18. 5 4
      ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IContractDetailService.java
  19. 5 0
      ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/BannerServiceImpl.java
  20. 7 6
      ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/ContractDetailServiceImpl.java
  21. 2 2
      ruoyi-admin/src/main/resources/application-druid.yml
  22. 17 0
      ruoyi-admin/src/main/resources/mapper/work/ContractDetailMapper.xml
  23. 1 0
      ruoyi-admin/src/main/resources/mapper/work/PackagesMapper.xml

+ 1 - 1
admin-ui/src/App.vue

@@ -21,7 +21,7 @@ export default {
 /**挂载iconfont字体图标*/
 @font-face {
   font-family: 'iconfont';
-  src: url('https://at.alicdn.com/t/c/font_4507607_mslj3795yhh.ttf?t=1713864741791') format('truetype');
+  src: url('https://at.alicdn.com/t/c/font_4507607_0tetqlbmivz.ttf?t=1713889487310') format('truetype');
   /* src: url('~@/static/font/iconfont.ttf') format('truetype'); */
 }
 .icon {

+ 2 - 2
admin-ui/src/views/dashboard/yrows.vue

@@ -117,8 +117,8 @@
         <router-link to="/notice">
           <div class="rout">
             <div class="rint" style="text-align: center; cursor: pointer">
-              <span class="icon" style="float: none; color: #ff5722">&#xe6be;</span>
-              <div class="ctt">意见反馈</div>
+              <span class="icon" style="float: none; color: #ff5722">&#xe6d5;</span>
+              <div class="ctt">问题反馈</div>
             </div>
           </div>
         </router-link>

+ 3 - 4
admin-ui/src/views/work/notice/notification.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
-    <el-table :data="response.rows" border @selection-change="selects" height="calc(100vh - 195px)">
-      <el-table-column type="selection" width="55" align="center" />
+    <el-table :data="response.rows" border height="calc(100vh - 195px)">
+      <el-table-column type="index" label="序号" align="center" width="80" />
       <el-table-column label="通知标题" align="left" prop="title" />
       <el-table-column label="创建时间" align="center" prop="createTime" width="200" />
       <el-table-column label="操作" align="center" width="220">
@@ -16,11 +16,10 @@
     <pagination v-if="response.total > 0" :total="response.total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
   </div>
 </template>
-
 <script>
 import noticeDetail from '@/views/work/notice/detail';
 export default {
-  name: 'Notice',
+  name: 'Notification',
   data() {
     return {
       ids: [],

+ 28 - 35
app/pages.json

@@ -10,59 +10,52 @@
 			}
 		},
 		{
-			"path" : "pages/packages/index",
-			"style" : 
-			{
-				"navigationBarTitleText" : "接包",
-				"enablePullDownRefresh" : true
+			"path": "pages/packages/index",
+			"style": {
+				"navigationBarTitleText": "接包",
+				"enablePullDownRefresh": true
 			}
 		},
 		{
-			"path" : "pages/user/index",
-			"style" : 
-			{
-				"navigationBarTitleText" : "接包",
-				"enablePullDownRefresh" : false
+			"path": "pages/user/index",
+			"style": {
+				"navigationBarTitleText": "我的",
+				"enablePullDownRefresh": false
 			}
 		},
 		{
-			"path" : "pages/user/login",
-			"style" : 
-			{
-				"navigationBarTitleText" : "用户登录",
-				"enablePullDownRefresh" : false
+			"path": "pages/user/login",
+			"style": {
+				"navigationBarTitleText": "用户登录",
+				"enablePullDownRefresh": false
 			}
 		},
 		{
-			"path" : "pages/auth/index",
-			"style" : 
-			{
-				"navigationBarTitleText" : "实名认证",
-				"enablePullDownRefresh" : false
+			"path": "pages/auth/index",
+			"style": {
+				"navigationBarTitleText": "实名认证",
+				"enablePullDownRefresh": false
 			}
 		},
 		{
-			"path" : "pages/company/index",
-			"style" : 
-			{
-				"navigationBarTitleText" : "关联企业",
-				"enablePullDownRefresh" : true
+			"path": "pages/company/index",
+			"style": {
+				"navigationBarTitleText": "关联企业",
+				"enablePullDownRefresh": true
 			}
 		},
 		{
-			"path" : "pages/company/search",
-			"style" : 
-			{
-				"navigationBarTitleText" : "手动关联",
-				"enablePullDownRefresh" : false
+			"path": "pages/company/search",
+			"style": {
+				"navigationBarTitleText": "手动关联",
+				"enablePullDownRefresh": false
 			}
 		},
 		{
-			"path" : "pages/user/info",
-			"style" : 
-			{
-				"navigationBarTitleText" : "关联企业",
-				"enablePullDownRefresh" : false
+			"path": "pages/user/info",
+			"style": {
+				"navigationBarTitleText": "关联企业",
+				"enablePullDownRefresh": false
 			}
 		}
 	],

+ 34 - 7
app/pages/index/index.vue

@@ -2,7 +2,7 @@
 	<view class="main">
 		<!--轮播图-->
 		<view class="banner">
-			<u-swiper circular :radius="5" :indicator="true" keyName="image" :list="bannerList" :height="150" class="uni-swiper" @click="click"></u-swiper>
+			<u-swiper circular :radius="5" :indicator="true" keyName="pic" :list="bannerList" :height="150" class="uni-swiper" @click="click"></u-swiper>
 		</view>
 		<!--通知公告-->
 		<view class="notice">
@@ -67,6 +67,7 @@
 				</view>
 			</view>
 		</view>
+		<u-action-sheet round="20" :actions="actions" @select="selectClick" cancelText="取消" :show="show" @close="show = false"></u-action-sheet>
 	</view>
 </template>
 <script>
@@ -75,8 +76,10 @@ export default {
 		return {
 			ip: this.http.ip,
 			user: {},
-			bannerList: [{ image: '../../static/index.jpg' }],
-			noticeList: ['承揽时代小程序上线了', '个人接包时代来临,动动手指就赚钱']
+			bannerList: [],
+			noticeList: [],
+			show: false,
+			actions: [{ name: '查看合同' }, { name: '去签字' }]
 		};
 	},
 	onShow() {
@@ -85,7 +88,7 @@ export default {
 		}
 	},
 	onLoad() {
-		//this.getData();
+		this.getData();
 	},
 	methods: {
 		getUser() {
@@ -98,9 +101,10 @@ export default {
 		},
 		getData() {
 			this.http.request({
-				url: this.http.urls.home_list,
+				url: '/app/home/index',
 				success: (res) => {
-					res.data.data.forEach((item) => {
+					this.bannerList = res.data.data.bannerList;
+					res.data.data.noticeList.forEach((item) => {
 						this.noticeList.push(item.title);
 					});
 				}
@@ -117,11 +121,34 @@ export default {
 				if (url == 'packages' && this.user.isCompany > 0) {
 					uni.switchTab({ url: '/pages/packages/index' });
 				}
-				if (url == 'contract') {
+				if (url == 'contract' && this.user.isContract == 0) {
+					this.show = true;
 				}
 			} else {
 				uni.navigateTo({ url: '/pages/user/login' });
 			}
+		},
+		selectClick(e) {
+			if (e.name == '查看合同') {
+				uni.downloadFile({
+					url: this.ip + '/profile/upload/2024/04/24/承揽合同_20240424004417A002.docx',
+					success: (res) => {
+						// 下载成功后返回的临时文件路径
+						let filePath = res.tempFilePath;
+						// 打开临时文件
+						uni.openDocument({
+							filePath: filePath,
+							showMenu: true,
+							success: (res) => {
+								console.log('打开文档成功');
+							}
+						});
+					},
+					fail: (err) => {}
+				});
+			} else {
+				console.log('合同签字');
+			}
 		}
 	}
 };

+ 33 - 16
app/pages/packages/index.vue

@@ -23,7 +23,9 @@
 				</view>
 				<view class="op">
 					<text>{{ item.createTime }}</text>
-					<text class="del" @click="add(item)">接包</text>
+					<text class="add" @click="add(item)" v-if="current == 0">接包</text>
+					<text v-if="current == 1" class="state">已接包</text>
+					<text v-if="current == 2" class="state">已完成</text>
 				</view>
 			</view>
 			<view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
@@ -67,19 +69,27 @@ export default {
 			this.refresh();
 		},
 		add(item) {
-			this.http.request({
-				url: '/app/packages/add',
-				data: { projectId: item.id },
-				method: 'POST',
+			uni.showModal({
+				title: '提示',
+				content: '确定接包?',
 				success: (res) => {
-					uni.showModal({
-						title: '提示',
-						content: '接包成功',
-						showCancel: false,
-						success: (res) => {
-							this.refresh();
-						}
-					});
+					if (res.confirm) {
+						this.http.request({
+							url: '/app/packages/add',
+							data: { projectId: item.id },
+							method: 'POST',
+							success: (res) => {
+								uni.showModal({
+									title: '提示',
+									content: '接包成功',
+									showCancel: false,
+									success: (res) => {
+										this.refresh();
+									}
+								});
+							}
+						});
+					}
 				}
 			});
 		},
@@ -114,7 +124,8 @@ export default {
 }
 .tab {
 	background-color: white;
-	border-radius: 5px;
+	border-radius: 7px;
+	padding-bottom: 10px;
 }
 .list {
 	padding-top: 13px;
@@ -143,9 +154,15 @@ export default {
 			padding-top: 10px;
 			color: #676767;
 			font-size: 14px;
-			.del {
+			.add {
+				float: right;
+				color: white;
+				background-color: $main-color;
+				padding: 3px 20px;
+				border-radius: 20px;
+			}
+			.state {
 				float: right;
-				color: #f44336;
 			}
 		}
 	}

+ 1 - 1
app/uni_modules/uview-ui/components/u-swiper/u-swiper.vue

@@ -45,7 +45,7 @@
 					<image
 						class="u-swiper__wrapper__item__wrapper__image"
 						v-if="getItemType(item) === 'image'"
-						:src="getSource(item)"
+						:src="ip+getSource(item)"
 						:mode="imgMode"
 						@tap="clickHandler(index)"
 						:style="{

+ 35 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_HomeController.java

@@ -0,0 +1,35 @@
+package com.ruoyi.web.work.api;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.work.service.IBannerService;
+import com.ruoyi.web.work.service.INoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 通知公告
+ *
+ * @author 高伟森
+ * @date 2024-04-18
+ */
+@RestController
+@RequestMapping("/app/home")
+public class Api_HomeController extends BaseController {
+    @Autowired
+    private INoticeService noticeService;
+
+    @Autowired
+    private IBannerService bannerService;
+
+    @GetMapping("/index")
+    public AjaxResult index() {
+        AjaxResult result = new AjaxResult();
+        result.put("bannerList", bannerService.homeList());
+        result.put("noticeList", noticeService.queryList());
+        return AjaxResult.success(result);
+    }
+
+}

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_NoticeController.java

@@ -16,4 +16,6 @@ import org.springframework.web.bind.annotation.RestController;
 public class Api_NoticeController extends BaseController {
     @Autowired
     private INoticeService noticeService;
+
+
 }

+ 2 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/work/api/config/InterceptorConfig.java

@@ -21,10 +21,8 @@ public class InterceptorConfig implements WebMvcConfigurer {
         InterceptorRegistration registration = registry.addInterceptor(tokenInterceptor());
         registration.addPathPatterns("/app/**");
         registration.excludePathPatterns("/app/user/login"); //排除
-        registration.excludePathPatterns("/app/user/aa"); //排除
-        registration.excludePathPatterns("/app/common/captcha"); //排除
-        registration.excludePathPatterns("/app/common/upgrade"); //排除
-        registration.excludePathPatterns("/app/notice"); //排除
+        registration.excludePathPatterns("/app/home/**"); //排除
+        registration.excludePathPatterns("/app/notice/**"); //排除
     }
 
     @Override

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/ContractDetailController.java

@@ -21,7 +21,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 /**
  * 合同签约管理
  * @author lsw
- * @date 2024-04-22
+ * @date 2024-04-24
  */
 @RestController
 @RequestMapping("/work/detail")

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/NoticeController.java

@@ -28,9 +28,9 @@ public class NoticeController extends BaseController {
     @Autowired
     private INoticeService noticeService;
 
-    @PreAuthorize("@ss.hasPermi('work:notice:list')")
     @GetMapping("/list")
     public TableDataInfo list(Notice notice){
+        notice.setState(0);
         startPage();
         List<Notice> list = noticeService.selectList(notice);
         return getDataTable(list);

+ 0 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Banner.java

@@ -21,15 +21,9 @@ public class Banner{
 
     private Long id;
 
-    @ApiModelProperty(value = "标题")
-    private String title;
-
     @ApiModelProperty(value = "封面图")
     private String pic;
 
-    @ApiModelProperty(value = "所属类型")
-    private String types;
-
     @ApiModelProperty(value = "跳转链接")
     private String contentId;
 

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/ContractDetail.java

@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.experimental.Accessors;
 /**
  * @author lsw
- * @date 2024-04-22
+ * @date 2024-04-24
  */
 @Data
 @TableName(value = "tb_contract_detail")

+ 4 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/BannerMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.work.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.web.work.domain.Banner;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -11,4 +12,7 @@ import java.util.List;
  */
 public interface BannerMapper extends BaseMapper<Banner> {
     List<Banner> selectList(Banner banner);
+
+    @Select("SELECT * FROM tb_banner WHERE state=0 ORDER BY order_num ASC LIMIT 5")
+    List<Banner> homeList();
 }

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/ContractDetailMapper.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
  * @author lsw
- * @date 2024-04-22
+ * @date 2024-04-24
  */
 public interface ContractDetailMapper extends BaseMapper<ContractDetail> {
     List<ContractDetail> selectList(ContractDetail contractDetail);

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IBannerService.java

@@ -11,4 +11,6 @@ import java.util.List;
  */
 public interface IBannerService extends IService<Banner>{
     List<Banner> selectList(Banner banner);
+
+    List<Banner> homeList();
 }

+ 5 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IContractDetailService.java

@@ -1,13 +1,14 @@
 package com.ruoyi.web.work.service;
 
-import java.util.List;
-import com.ruoyi.web.work.domain.ContractDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.work.domain.ContractDetail;
+
+import java.util.List;
 
 /**
  * @author lsw
- * @date 2024-04-22
+ * @date 2024-04-24
  */
-public interface IContractDetailService extends IService<ContractDetail>{
+public interface IContractDetailService extends IService<ContractDetail> {
     List<ContractDetail> selectList(ContractDetail contractDetail);
 }

+ 5 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/BannerServiceImpl.java

@@ -22,4 +22,9 @@ public class BannerServiceImpl extends ServiceImpl<BannerMapper, Banner> impleme
     public List<Banner> selectList(Banner banner) {
         return bannerMapper.selectList(banner);
     }
+
+    @Override
+    public List<Banner> homeList() {
+        return bannerMapper.homeList();
+    }
 }

+ 7 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/ContractDetailServiceImpl.java

@@ -1,16 +1,17 @@
 package com.ruoyi.web.work.service.impl;
 
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.web.work.mapper.ContractDetailMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.web.work.domain.ContractDetail;
+import com.ruoyi.web.work.mapper.ContractDetailMapper;
 import com.ruoyi.web.work.service.IContractDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @author lsw
- * @date 2024-04-22
+ * @date 2024-04-24
  */
 @Service
 public class ContractDetailServiceImpl extends ServiceImpl<ContractDetailMapper, ContractDetail> implements IContractDetailService {

+ 2 - 2
ruoyi-admin/src/main/resources/application-druid.yml

@@ -6,8 +6,8 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://123.60.57.26:3306/clsd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-                username: root
+                url: jdbc:mysql://47.104.228.216:3306/clsd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                username: clsd
                 password: gogo-2636616
             # 从库数据源
             slave:

+ 17 - 0
ruoyi-admin/src/main/resources/mapper/work/ContractDetailMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.web.work.mapper.ContractDetailMapper">
+    
+    <select id="selectList" resultType="com.ruoyi.web.work.domain.ContractDetail">
+        select * from tb_contract_detail
+        <where>  
+            <if test="contractId != null "> and contract_id = #{contractId}</if>
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="url != null  and url != ''"> and url = #{url}</if>
+            <if test="state != null "> and state = #{state}</if>
+        </where>
+    </select>
+
+</mapper>

+ 1 - 0
ruoyi-admin/src/main/resources/mapper/work/PackagesMapper.xml

@@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
         p.id,
         p.create_time,
+        p.project_id,
         u.NAME,
         u.id_card,
         u.alipay,