qzyReal 3 жил өмнө
parent
commit
e31d00d497

+ 3 - 0
app/apis/api.js

@@ -191,6 +191,9 @@ export default {
 	},
 	getCarDisinFect(data){
 		return ajax.get('/TbBusiness/getCarDisincleList',data)	
+	},
+	getItemType(data){
+		return ajax.get('/TbItemType/getItemTypeById',data);
 	}
 
 }

+ 23 - 15
app/pages.json

@@ -9,7 +9,7 @@
 				"navigationBarTitleText": "" //首页
 				//"navigationStyle":"custom"
 			}
-		}, 
+		},
 		{
 			"path": "pages/enterprise-reg/enterprise-reg",
 			"style": {
@@ -23,9 +23,9 @@
 			"style": {
 				"navigationBarTitleText": "" //跳转页
 			}
-		
+
 		}
-		
+
 		, {
 			"path": "pages/login/login",
 			"style": {
@@ -235,71 +235,79 @@
 				"navigationBarTitleText": "",
 				"navigationStyle": "custom"
 			}
-		
+
 		},
 		{
 			"path": "pages/business-order/business-item",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
 		{
 			"path": "pages/partner/index",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
 		{
 			"path": "pages/user/user-index",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
 		{
 			"path": "pages/user/addUser",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
 		{
 			"path": "pages/user/addUserSuccess",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
 		{
 			"path": "pages/business-order/partner-business-item",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
 		{
 			"path": "pages/onely-disinfect/disinfect-Index",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
 		{
 			"path": "pages/onely-disinfect/addSuccess",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-		
+
 		},
-		
-	{
+
+		{
 			"path": "pages/onely-disinfect/Index",
 			"style": {
 				"navigationBarTitleText": ""
 			}
-	
+
+		},
+		
+		{
+			"path": "pages/onely-disinfect/type-business",
+			"style": {
+				"navigationBarTitleText": ""
+			}
+		
 		}
 
 	],

+ 0 - 1
app/pages/onely-disinfect/disinfect-Index.vue

@@ -77,7 +77,6 @@
 			let data = options.json;
 			if (data) {
 				this.obj = JSON.parse(options.json)
-				console.log(this.form)
 			}
 		},
 		mounted() {

+ 258 - 0
app/pages/onely-disinfect/type-business.vue

@@ -0,0 +1,258 @@
+<template>
+	<view>
+		<view class="box">
+			<view class="top">
+				<text class="title">{{itemType.name}}</text>
+			</view>
+			<view class="item-line">
+				基本信息
+			</view>
+			<view class="item">
+				<view class="l"><text style="color: red;">*</text>车辆类型:</view>
+				<view class="r">
+					<picker class="p-picker" id="qy" @change="bindPickerChange($event)" :value="type.index"
+						:range="type.list" range-key="name">
+						<text class="p-text">{{type.list[type.index]}}</text>
+						<u-icon class="p-icon" name="arrow-down-fill" size="20"></u-icon>
+					</picker>
+				</view>
+			</view>
+			<view class="item">
+				<view class="l"><text style="color: red;">*</text>车牌号:</view>
+				<view class="r">
+					<u-input placeholder="请填写车牌号" v-model="form.carNo" />
+				</view>
+			</view>
+			<view class="item">
+				<view class="l"><text style="color: red;">*</text>车辆规格:</view>
+				<view class="r">
+					<u-input placeholder="请填写车辆规格" v-model="form.carSize" />
+				</view>
+			</view>
+			<view class="item" v-if="type.index==1">
+				<view class="l">车辆载重:</view>
+				<view class="r">
+					<u-input placeholder="请填写车辆载重" v-model="form.carWeight" />
+				</view>
+			</view>
+			<view class="item-line">
+				收费明细
+			</view>
+			<view class="item" v-for="item in itemList" :key="item.id">
+				<view class="l" style="flex: 6;">{{item.itemName}}:
+				</view>
+				<view class="r">
+					<view style="margin-left: 20rpx;">
+						{{item.price}}元
+					</view>
+				</view>
+			</view>
+
+			<u-checkbox-group v-for="item in itemType.items" placement="column">
+				<uni-list>
+					<uni-list-item :title="item.itemName" :note="item.price+''+item.unit">
+						<template v-slot:footer>
+							<u-checkbox :name="item.id" :checked="item.need">
+							</u-checkbox>
+						</template>
+					</uni-list-item>
+				</uni-list>
+			</u-checkbox-group>
+		</view>
+		<view v-if="!form.adminConfirmInput">
+			<u-button type="primary" v-if="!obj" text="保存" @click="saveFn"></u-button>
+			<!-- <u-button type="primary" v-if="obj" text="修改" @click="saveFn"></u-button> -->
+			<u-button type="primary" v-if="obj" text="确认账单" @click="confirmFn" style="margin-top: 20rpx;"></u-button>
+			<u-button type="info" text="重置" @click="resetFn" style="margin-top: 20rpx;"></u-button>
+		</view>
+		<!-- ---------------------------------------------------------- -->
+		<view class="bottom-safety"></view>
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				type: {
+					index: 0,
+					list: ['空车', '载货']
+				},
+				obj: null,
+				form: {
+					carNo: ''
+				},
+				itemList: [],
+				list: [],
+				itemType: {
+					id: '',
+					name: '',
+					items: []
+				}
+			}
+		},
+		onLoad(options) {
+			let typeId = options.typeId;
+			this.itemType.id = typeId;
+			this.getItemType();
+		},
+		mounted() {},
+		onBackPress() {
+			this.$common.to('/pages/onely-disinfect/Index');
+			return true;
+		},
+		methods: {
+			getItemType() {
+				this.$api.getItemType({
+					id: this.itemType.id
+				}).then(resp => {
+					this.itemType = resp.data;
+				})
+			},
+
+			bindPickerChange(e) {
+				let index = e.detail.value;
+				this.type.index = index //当前picker选中的值
+				if (index == 0) {
+					this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头车厢') !== -1)
+				} else {
+					this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头消杀') !== -1)
+				}
+			},
+			getTypeList() {
+				this.$api.getItemList({
+					business: 0
+				}).then(resp => {
+					let list = resp.data;
+					let itemList = [];
+					for (let i in list) {
+						let item = list[i];
+						itemList.push(item.items[0]);
+					}
+					this.list = itemList;
+					this.itemList = itemList.filter(obj => obj.itemName.indexOf('车头车厢') !== -1);
+					if (this.obj) {
+						this.form.carNo = this.obj.carNo;
+						this.form.businessCarId = this.obj.businessCarId;
+						this.form.adminConfirmInput = this.obj.adminConfirmInput;
+						this.form.id = this.obj.id;
+						let index = this.type.list.indexOf(this.obj.goodsName);
+						this.type.index = index
+						if (index == 0) {
+							this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头车厢') !== -1)
+						} else {
+							this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头消杀') !== -1)
+						}
+					}
+				})
+			},
+			resetFn() {
+				this.form.carNo = '';
+				this.type.index = 0;
+				this.itemList = this.list;
+			},
+			saveFn() {
+				if (!this.form.carNo) {
+					this.$common.toast('请输入车牌号')
+					return;
+				}
+				this.form.itemJson = JSON.stringify(this.itemList);
+				this.form.carType = this.type.list[this.type.index]
+				let that = this;
+				let content = this.obj ? '确认修改该业务?' : '确认录入该车辆的消杀业务?'
+				uni.showModal({
+					title: '提示',
+					content: content,
+					success(res) {
+						if (res.confirm) {
+							if (!that.obj) {
+								that.addFn();
+							} else {
+								that.editFn()
+							}
+
+						}
+					}
+				})
+			},
+			addFn() {
+				this.$api.addCarDisinfect(this.$common.removeNull(this.form)).then(resp => {
+					if (resp.code == 200) {
+						this.$common.to('/pages/onely-disinfect/addSuccess')
+					}
+				})
+			},
+			confirmFn() {
+				let that = this;
+				uni.showModal({
+					title: '提示',
+					content: '是否确认该账单?',
+					success(res) {
+						if (res.confirm) {
+							that.$api.adminConfirm({
+								ids: that.form.id
+							}).then(resp => {
+								if (resp.code == 200) {
+									that.$common.toast('已确认');
+									setTimeout(() => {
+										that.$common.to('/pages/onely-disinfect/Index')
+									}, 1500)
+								}
+							})
+						}
+					}
+				})
+			},
+			editFn() {
+				this.$api.editCarDisinfect(this.$common.removeNull(this.form)).then(resp => {
+					if (resp.code == 200) {
+						this.$common.toast('修改成功');
+						setTimeout(() => {
+							this.$common.to('/pages/onely-disinfect/Index')
+						}, 1500)
+					}
+				})
+			}
+		},
+
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #fff;
+	}
+
+	.hs-item {
+		text-align: center;
+	}
+
+	.item-line {
+		color: #a2a2a2;
+		padding: 5px 0 10px 29px;
+		border-bottom: 1px solid #E5E5E5;
+	}
+
+	.hj {
+		padding: 50rpx;
+		font-size: 40rpx;
+		color: red;
+		font-weight: bold;
+	}
+
+	.save-btn {
+		background-color: #ff4200;
+		height: 88rpx;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin: 60rpx;
+		color: #fff;
+		font-size: 30rpx;
+		font-weight: bold;
+		border-radius: 10rpx;
+	}
+
+	@import '@/common/common.scss'
+</style>

+ 2 - 2
app/utils/request.js

@@ -1,5 +1,5 @@
-// const server = 'http://127.0.0.1:8099/pro';
-const server = 'https://pco.aseanbusiness.cn/pro';
+const server = 'http://127.0.0.1:8099/pro';
+// const server = 'https://pco.aseanbusiness.cn/pro';
 // const server = 'https://dxkaa1.bgigc.com/pro';
 
 import common from '../common/js/common.js';

+ 1 - 1
sp-admin/sa-frame/menu-list.js

@@ -333,7 +333,7 @@ var menuList = [{
 				url: 'sa-view/tb-item-type/tb-item-type-list.html'
 			},
 			{
-				id: 'tb-item-list',
+				id: 'tb-item-re-list',
 				name: '明细管理',
 				url: 'sa-view/tb-item-type/tb-item-list.html'
 			},

+ 33 - 5
sp-admin/sa-view/tb-item-type/tb-item-select.html

@@ -64,7 +64,8 @@
 				},
 				el: '.vue-box',
 				data: {
-					typeId: sa.p('id', ''),
+					typeId: sa.p('typeId', ''),
+					ids: sa.p('ids', ''),
 					p: { // 查询参数  
 						id: '', // 主键
 						itemName: '', // 项目名称 
@@ -82,20 +83,47 @@
 						if (selection.length == 0) {
 							return sa.msg('至少选择一条数据')
 						}
-						let obj={typeId:this.typeId,itemIds:selection.map(obj=>obj.id).join(',')}
-						sa.ajax('/RelationTypeItem/setBatch',obj,function(resp){
-							
+						let obj = {
+							typeId: this.typeId,
+							itemIds: selection.map(obj => obj.id).join(',')
+						}
+						sa.ajax('/RelationTypeItem/setBatch', obj, function(resp) {
+							sa.alert('添加成功');
+							setTimeout(() => {
+								sa.closeCurrIframe(); // 关闭本页 
+								parent.app.f5(); // 刷新父页面列表
+							}, 1000)
 						}.bind(this))
 					},
 					selectFn(data) {
-
+						let obj = {
+							typeId: this.typeId,
+							itemId: data.id
+						}
+						sa.ajax('/RelationTypeItem/setSingle', obj, function(resp) {
+							this.ids = this.ids + ',' + data.id;
+							sa.alert('添加成功');
+							setTimeout(() => {
+								this.f5();
+							}, 1000)
+						}.bind(this))
 					},
+
 					// 刷新
 					f5: function() {
 						sa.ajax('/TbItem/getList', sa.removeNull(this.p), function(res) {
 							let list = res.data;
 							this.dataList = list; // 数据
 							this.dataCount = res.dataCount; // 数据总数 
+							let ids = this.ids.split(',');
+							list.forEach(row => {
+								if (ids.indexOf(row.id) !== -1) {
+									this.$nextTick(() => {
+										this.$refs['data-table'].toggleRowSelection(row,
+											true)
+									})
+								}
+							})
 							sa.f5TableHeight(); // 刷新表格高度 
 						}.bind(this));
 					},

+ 16 - 0
sp-admin/sa-view/tb-item-type/tb-item-type-add.html

@@ -47,6 +47,20 @@
 							</el-select>
 						</div>
 						<div class="c-item">
+							<label class="c-label">业务数量:</label>
+							<el-radio-group v-model="m.inc">
+								<el-radio :label="0">单个</el-radio>
+								<el-radio :label="1">可多个</el-radio>
+							</el-radio-group>
+						</div>
+						<div class="c-item">
+							<label class="c-label">备注:</label>
+							<el-radio-group v-model="m.needRemark">
+								<el-radio :label="0">选填</el-radio>
+								<el-radio :label="1">必填</el-radio>
+							</el-radio-group>
+						</div>
+						<div class="c-item">
 							<label class="c-label">税率(%):</label>
 							<el-input-number class="item-num" v-model="m.taxRate" :step="0.1" :min="0" :max="100"
 								></el-input-number>
@@ -77,7 +91,9 @@
 					m: {
 						id: '', // 主键
 						sort: '1',
+						needRemark:0,
 						taxRate: 0.6,
+						inc:0,
 						name: '',
 						code: '',
 						business: '0',

+ 19 - 33
sp-admin/sa-view/tb-item-type/tb-item-type-info.html

@@ -3,7 +3,8 @@
 	<head>
 		<title>作业配置项-详情</title>
 		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css js 资源 -->
 		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
@@ -13,40 +14,23 @@
 		<script src="../../static/kj/jquery.min.js"></script>
 		<script src="../../static/kj/layer/layer.js"></script>
 		<script src="../../static/sa.js"></script>
+		<script src="../../static/kj/qrocde.js"></script>
 		<style type="text/css">
-			.c-panel .c-label{width: 8em;}
+			.c-panel .c-label {
+				width: 8em;
+			}
 		</style>
 	</head>
 	<body>
 		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
 			<!-- ------- 内容部分 ------- -->
 			<div class="s-body">
-				<div class="c-panel">
-					<el-form v-if="m">
-						<el-row>
-							<el-col span="12">
-								<sa-info name="项目编号" br>{{m.itemCode}}</sa-info>
-								<sa-info name="项目名称" br>{{m.itemName}}</sa-info>
-								<sa-info name="项目类型" br>{{m.typeName}}</sa-info>
-								<sa-info name="项目金额(元)" br>{{m.price}}</sa-info>
-							</el-col>
-							<el-col span="12">
-								<sa-info name="金额单位" br>{{m.unit}}</sa-info>
-								<sa-info name="车长(米)" br>{{m.carLength}}</sa-info>
-								<sa-info name="最大载重(吨)" br>{{m.maxWeight}}</sa-info>
-								<sa-info name="状态" br>
-									<span v-if="m.status == 1">启用</span>
-									<span v-if="m.status == 0">禁用</span>
-								</sa-info>
-							</el-col>
-						</el-row>
-					</el-form>
-				</div>
+				<div id="qrcode" style="margin: 50px"></div>
 			</div>
 			<!-- ------- 底部按钮 ------- -->
 			<div class="s-foot">
 				<el-button type="success" @click="sa.closeCurrIframe()">关闭</el-button>
-<!--				<el-button @click="sa.closeCurrIframe()">取消</el-button>-->
+				<!--				<el-button @click="sa.closeCurrIframe()">取消</el-button>-->
 			</div>
 		</div>
 		<script>
@@ -56,21 +40,23 @@
 				},
 				el: '.vue-box',
 				data: {
-					id: sa.p('id', 0),	// 获取数据ID 
+					id: sa.p('id', 0), // 获取数据ID 
 					m: null
 				},
-				methods: {
-				},
+				methods: {},
 				mounted: function() {
-					sa.ajax('/TbItem/getById?id=' + this.id, function(res) {
-						this.m = res.data;
-						if(res.data == null) {
-							sa.alert('未能查找到 id=' + this.id + " 详细数据");
-						}
+					sa.ajax('/TbItemType/getQrcode?id=' + this.id, function(res) {
+						var qrcode = new QRCode(document.getElementById("qrcode"), {
+							text: res.data,
+							width: 400,
+							height: 400,
+							colorDark: "#000000",
+							colorLight: "#ffffff",
+							correctLevel: QRCode.CorrectLevel.H
+						});
 					}.bind(this))
 				}
 			})
-			
 		</script>
 	</body>
 </html>

+ 36 - 32
sp-admin/sa-view/tb-item-type/tb-item-type-list.html

@@ -31,31 +31,33 @@
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<el-table-column type="index" width="50"></el-table-column>
-						<sa-td name="项目名称" prop="name" width="300px"></sa-td>
-						<sa-td name="业务分类" prop="businessType">
-							<template slot-scope="s">
-								<el-select :disabled="!sa.isAuth('tb-item-list-edit-type')" multiple
-									v-model="s.row.type" placeholder="收费项" @change="businessChange(s.row)">
-									<el-option v-for="item in businessTypeList" :key="item.value" :value="item.value"
-										:label="item.name">
-									</el-option>
-								</el-select>
-							</template>
-						</sa-td>
-						<sa-td name="税率" prop="taxRate"></sa-td>
-						<sa-td name="排序" prop="sort"></sa-td>
-						<el-table-column label="操作" fixed="right" width="240px">
-							<template slot-scope="s">
-								<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看
-								</el-button>
-								<el-button class="c-btn" type="success" icon="el-icon-view" @click="itemFn(s.row)">收费明细
-								</el-button>
-								<el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改
-								</el-button>
-								<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除
-								</el-button>
-							</template>
-						</el-table-column>
+					<sa-td name="项目名称" prop="name" width="200px"></sa-td>
+					<sa-td name="业务分类" prop="businessType" width="200px">
+						<template slot-scope="s">
+							<el-select :disabled="!sa.isAuth('tb-item-list-edit-type')" multiple v-model="s.row.type"
+								placeholder="收费项" @change="businessChange(s.row)">
+								<el-option v-for="item in businessTypeList" :key="item.value" :value="item.value"
+									:label="item.name">
+								</el-option>
+							</el-select>
+						</template>
+					</sa-td>
+					<sa-td name="业务数量" prop="inc" type="enum" :jv="{0: '单个', 1: '可多个'}"></sa-td>
+					<sa-td name="税率" prop="taxRate"></sa-td>
+					<sa-td name="排序" prop="sort"></sa-td>
+					<sa-td name="备注" prop="needRemark" type="enum" :jv="{0: '选填', 1: '必填'}"></sa-td>
+					<el-table-column label="操作" fixed="right" width="260px">
+						<template slot-scope="s">
+							<el-button class="c-btn" type="success"  @click="get(s.row)">二维码
+							</el-button>
+							<el-button class="c-btn" type="success" @click="itemFn(s.row)">收费明细
+							</el-button>
+							<el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">修改
+							</el-button>
+							<el-button class="c-btn" type="danger" icon="el-icon-delete" @click="del(s.row)">删除
+							</el-button>
+						</template>
+					</el-table-column>
 				</el-table>
 				<!-- ------------- 分页 ------------- -->
 				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()">
@@ -100,15 +102,13 @@
 					]
 				},
 				methods: {
-					itemFn(data){
-						sa.showIframe('收费明细', 'tb-item.html?id=' + data.id, '1080px', '90%');
+					itemFn(data) {
+						sa.showIframe('【'+data.name+'】收费明细', 'tb-item.html?id=' + data.id, '1080px', '90%');
 					},
 					businessChange(data) {
-						let obj = {
-							id: data.id,
-							businessType: data.type.join(',')
-						}
-						sa.ajax('/TbItemType/update', obj, function(res) {
+						data.businessType = data.type.join(',');
+						data.type = '';
+						sa.ajax('/TbItemType/update', data, function(res) {
 							this.f5();
 						}.bind(this));
 					},
@@ -116,6 +116,10 @@
 					update: function(data) {
 						sa.showIframe('修改数据', 'tb-item-type-add.html?id=' + data.id, '600px', '60%');
 					},
+					// 修改
+					get: function(data) {
+						sa.showIframe('【'+data.name+'】二维码', 'tb-item-type-info.html?id=' + data.id, '550px', '80%');
+					},
 					// 新增
 					add: function(data) {
 						sa.showIframe('新增数据', 'tb-item-type-add.html?id=-1', '600px', '60%');

+ 5 - 4
sp-admin/sa-view/tb-item-type/tb-item.html

@@ -20,7 +20,7 @@
 			<div class="c-panel">
 				<!-- ------------- 检索参数 ------------- -->
 				<el-form ref="form" :model='p' @submit.native.prevent>
-					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">重置</el-button>
 					<el-button type="primary" icon="el-icon-plus" @click="add()">选择
 					</el-button>
 					<br />
@@ -42,7 +42,7 @@
 							<label>{{s.row.minWeight}}—{{s.row.maxWeight}}</label>
 						</template>
 					</sa-td>
-					<sa-td name="是否必须" prop="need" type="switch" :jv="{0: '是[#ff0000]', 1: '否[#005500]'}"
+					<sa-td name="是否必须" prop="need" type="switch" :jv="{1: '是[#005500]', 0: '否[#ff0000]'}"
 						@change="s => updateStatus(s.row)"></sa-td>
 					<el-table-column label="操作" fixed="right">
 						<template slot-scope="s">
@@ -96,12 +96,13 @@
 					},
 					// 新增
 					add: function(data) {
-						sa.showIframe('选择明细', 'tb-item-select.html?id='+this.p.typeId, '900px', '90%');
+						let ids=this.dataList.map(obj=>obj.id).join(',');
+						sa.showIframe('选择明细', 'tb-item-select.html?typeId='+this.p.typeId+'&ids='+ids, '900px', '90%');
 					},
 					// 删除
 					del: function(data) {
 						sa.confirm('是否移除出该收费项?', function() {
-							sa.ajax('/TbItem/delete?id=' + data.id, function(res) {
+							sa.ajax('/RelationTypeItem/delete?id=' + data.id, function(res) {
 								sa.arrayDelete(this.dataList, data);
 								sa.ok('删除成功');
 								sa.f5TableHeight(); // 刷新表格高度 

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
sp-admin/static/kj/qrocde.js


+ 1 - 1
sp-server/app.pid

@@ -1 +1 @@
-14604
+27188

+ 16 - 1
sp-server/src/main/java/com/pj/project/relation_type_item/RelationTypeItemController.java

@@ -40,12 +40,27 @@ public class RelationTypeItemController {
         return AjaxJson.getPageData(so.getDataCount(), list);
     }
 
+    @RequestMapping("delete")
+    public AjaxJson delete(String id) {
+        relationTypeItemService.removeById(id);
+        return AjaxJson.getSuccess();
+    }
+
     @RequestMapping("setBatch")
     public AjaxJson setBatch() {
         SoMap so = SoMap.getRequestSoMap();
         String typeId = so.getString("typeId");
         String itemIds = so.getString("itemIds");
-       relationTypeItemService.setBatch(typeId,itemIds);
+        relationTypeItemService.setBatch(typeId, itemIds);
+        return AjaxJson.getSuccess();
+    }
+
+    @RequestMapping("setSingle")
+    public AjaxJson setSingle() {
+        SoMap so = SoMap.getRequestSoMap();
+        String typeId = so.getString("typeId");
+        String itemId = so.getString("itemId");
+        relationTypeItemService.setSingle(typeId, itemId);
         return AjaxJson.getSuccess();
     }
 

+ 13 - 1
sp-server/src/main/java/com/pj/project/relation_type_item/RelationTypeItemService.java

@@ -39,7 +39,7 @@ public class RelationTypeItemService extends ServiceImpl<RelationTypeItemMapper,
         return relationTypeItemMapper.getList(so);
     }
 
-    List<RelationTypeItem> findByTypeId(String typeId) {
+    public List<RelationTypeItem> findByTypeId(String typeId) {
         QueryWrapper<RelationTypeItem> ew = new QueryWrapper<>();
         ew.eq("type_id", typeId);
         return list(ew);
@@ -60,4 +60,16 @@ public class RelationTypeItemService extends ServiceImpl<RelationTypeItemMapper,
                 });
 
     }
+
+    public void removeByTypeId(String typeId) {
+        QueryWrapper<RelationTypeItem> ew = new QueryWrapper<>();
+        ew.eq("type_id", typeId);
+        this.remove(ew);
+    }
+
+    public void setSingle(String typeId, String itemId) {
+        RelationTypeItem relationTypeItem = new RelationTypeItem();
+        relationTypeItem.setNeed("1").setItemId(itemId).setTypeId(typeId);
+        this.save(relationTypeItem);
+    }
 }

+ 1 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItem.java

@@ -101,6 +101,7 @@ public class TbBusinessItem extends Model<TbBusinessItem> implements Serializabl
 	private String pickCustomerName;
 	private String businessType;
 	private String no;
+	private String remark;
 
 	@TableField(exist = false)
 	private String goodsName;

+ 7 - 0
sp-server/src/main/java/com/pj/project/tb_item/TbItemService.java

@@ -3,6 +3,7 @@ package com.pj.project.tb_item;
 import java.util.List;
 
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.pj.project.tb_item_type.TbItemType;
@@ -49,4 +50,10 @@ public class TbItemService extends ServiceImpl<TbItemMapper, TbItem> implements
     public List<TbItem> getTypeItemList(SoMap soMap) {
         return tbItemMapper.getTypeItemList(soMap);
     }
+
+    public List<TbItem> findByItemTypeId(String itemType) {
+        QueryWrapper<TbItem> ew = new QueryWrapper<>();
+        ew.eq("type_id", itemType);
+        return list(ew);
+    }
 }

+ 1 - 0
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemType.java

@@ -67,6 +67,7 @@ public class TbItemType extends Model<TbItemType> implements Serializable {
 	private String businessType="0";
 	private Integer business=1;
 	private Integer sort;
+	private Integer needRemark;
 
 	@TableField(exist = false)
 	private List<TbItem>items=new ArrayList<>();

+ 21 - 2
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeController.java

@@ -3,6 +3,7 @@ package com.pj.project.tb_item_type;
 import java.math.BigDecimal;
 import java.util.List;
 
+import com.pj.current.config.MyConfig;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -14,6 +15,8 @@ import com.pj.project4sp.SP;
 import com.pj.current.satoken.StpUserUtil;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 
+import javax.annotation.Resource;
+
 
 /**
  * Controller: tb_item_type -- 业务项类型
@@ -29,6 +32,8 @@ public class TbItemTypeController {
      */
     @Autowired
     TbItemTypeService tbItemTypeService;
+    @Resource
+    private MyConfig myConfig;
 
     /**
      * 增
@@ -80,6 +85,14 @@ public class TbItemTypeController {
         TbItemType t = tbItemTypeService.getById(id);
         return AjaxJson.getSuccessData(t);
     }
+    /**
+     * 查 - 根据id====灵活业务专用
+     */
+    @RequestMapping("getItemTypeById")
+    public AjaxJson getItemTypeById(String id) {
+        TbItemType t = tbItemTypeService.getItemTypeById(id);
+        return AjaxJson.getSuccessData(t);
+    }
 
     /**
      * 查集合 - 根据条件(参数为空时代表忽略指定条件)
@@ -91,11 +104,17 @@ public class TbItemTypeController {
         return AjaxJson.getPageData(so.getDataCount(), list);
     }
 
-
+    /**
+     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+     */
+    @RequestMapping("getQrcode")
+    public AjaxJson getQrcode(String id) {
+        String url = myConfig.getWebDomain() + "/pages/onely-disinfect/type-business?typeId=" + id;
+        return AjaxJson.getSuccessData(url);
+    }
 
 
     // ------------------------- 前端接口 -------------------------
 
 
-
 }

+ 4 - 10
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeMapper.xml

@@ -11,6 +11,7 @@
 		<result property="name" column="name" />
 		<result property="need" column="need" />
         <result property="taxRate" column="tax_rate" />
+        <result property="needRemark" column="need_remark" />
 		<collection property="items" ofType="com.pj.project.tb_item.TbItem" column="id" select="getItems"/>
 	</resultMap>
 	
@@ -20,7 +21,7 @@
 		from tb_item_type
 	</sql>
 	<select id="getItems" resultType="com.pj.project.tb_item.TbItem">
-		select * from tb_item where type_id=#{id}
+		select * from tb_item where type_id=#{id} and status=1
 	</select>
 
 	<!-- 查集合 - 根据条件(参数为空时代表忽略指定条件) [G] -->
@@ -40,14 +41,7 @@
 			<otherwise>  sort asc </otherwise>
 		</choose>
 	</select>
-	
-	
-	
-	
-	
-	
-	
-	
-	
+
+
 
 </mapper>

+ 50 - 18
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeService.java

@@ -1,43 +1,75 @@
 package com.pj.project.tb_item_type;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.pj.project.relation_type_item.RelationTypeItem;
+import com.pj.project.relation_type_item.RelationTypeItemService;
+import com.pj.project.tb_item.TbItem;
+import com.pj.project.tb_item.TbItemService;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.pj.utils.sg.*;
 
+import javax.annotation.Resource;
+
 /**
  * Service: tb_item_type -- 业务项类型
- * @author qzy 
+ *
+ * @author qzy
  */
 @Service
-public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper,TbItemType> implements IService<TbItemType> {
+public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper, TbItemType> implements IService<TbItemType> {
 
-	/** 底层 Mapper 对象 */
-	@Autowired
-	TbItemTypeMapper tbItemTypeMapper;
+    /**
+     * 底层 Mapper 对象
+     */
+    @Autowired
+    TbItemTypeMapper tbItemTypeMapper;
+    @Resource
+    TbItemService tbItemService;
+    @Resource
+    private RelationTypeItemService relationTypeItemService;
 
 
+    /**
+     * 删
+     */
+    void delete(String id) {
+        this.removeById(id);
+        relationTypeItemService.removeByTypeId(id);
+    }
 
-	/** 删 */
-	void delete(String id){
-		this.removeById(id);
-	}
 
+    /**
+     * 查
+     */
+    TbItemType getById(String id) {
+        TbItemType itemType = super.getById(id);
+        List<TbItem> tbItems = tbItemService.findByItemTypeId(id);
+        itemType.setItems(tbItems);
+        return itemType;
+    }
 
-	/** 查 */
-	TbItemType getById(String id){
-		return super.getById(id);
-	}
+    /**
+     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+     */
+    List<TbItemType> getList(SoMap so) {
+        return tbItemTypeMapper.getList(so);
+    }
 
-	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
-	List<TbItemType> getList(SoMap so) {
-		return tbItemTypeMapper.getList(so);	
-	}
-	
 
+    public TbItemType getItemTypeById(String id) {
+        TbItemType tbItemType = super.getById(id);
+        List<RelationTypeItem> relationTypeItems = relationTypeItemService.findByTypeId(id);
+        List<String> itemIss = relationTypeItems.stream().map(RelationTypeItem::getItemId).collect(Collectors.toList());
+        if (!itemIss.isEmpty()){
+            tbItemType.setItems(tbItemService.listByIds(itemIss));
+        }
+        return tbItemType;
+    }
 }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно