system-dictionary1.vue 11.6 KB
<style>
	.btn-d-cancel {
		border: 1px #cfd4d7 solid;
		background: #cfd4d7;
		color: #fff;
	}
</style>
<template>
	<div class="container resource" style="min-height: 490px;">

		<div class="pop-banner clearfix">
			<!--<form class="search-bar">-->
				<!--<div class="search-btn" v-on:click="getData('search')">-->
					<!--<input type="submit" value="搜索">-->
				<!--</div>-->
				<!--<input type="text" v-model="search.searchtxt" placeholder="输入关键字" style="color: #373737;">-->
			<!--</form>-->

			<div class="operate-btns">
				<a class="fbtn fb-add" v-show="!addrow" v-on:click="addrow=!addrow">添加</a>
				<a href="javascript:void(0)" class="fbtn fb-save" v-show="addrow" v-on:click="add()">保存</a>
				<a href="javascript:;" class="fbtn fb-refresh" v-on:click="getData('refresh')">刷新</a>

			</div>
			<h3 class="current-module">系统参数</h3>
		</div>

		<!-- start-->
		<div class="pd-form fast-search-form">
			<div class="group-row">
				<div class="form-group">
					<label for="in1" class="label">医院</label>
					<div class="control">
						<input type="text" value="" maxlength="20" id="in1" placeholder='医院' v-model="search.name" v-rule>
					</div>
				</div>
				<div class="form-group">
					<label for="in3" class="label">参数编号</label>
					<div class="control">
						<input type="text" value="" id="in3" placeholder='参数编号' v-model="search.code" v-rule>
					</div>
				</div>
			</div>
			<div class="group-row">
				<div class="form-group">
					<label for="in4" class="label">参数值</label>
					<div class="control">
						<input type="text" value="" id="in4" placeholder='参数值' v-model="search.parametervalue" v-rule>
					</div>
				</div>
				<div class="form-group">
					<label class="label">参数类型</label>
					<div class="control control-filtering control-filtering-green w600">
						<a class="option" :class="{'all active':search.parametertype==''}" href="javascript:void(0)" @click="search.parametertype=''">全部</a>
						<a class="option" href="javascript:;" :class="{'all active':search.parametertype=='0'}" v-on:click="search.parametertype='0'">业务类</a>
						<a class="option" href="javascript:;" :class="{'all active':search.parametertype=='1'}" v-on:click="search.parametertype='1'">系统类</a>
					</div>
				</div>
			</div>
			<div class="group-row t-right">
				<button class="fast-search-form-btn btn-d btn-d-lg btn-d-activate btn-d-circle" @click="getData(true)">查 询</button>
			</div>
		</div>
		<!--basic-user-info start-->
		<table class="itable basic-user-info">
			<thead>
				<tr>
					<th class="w60">序号</th>
					<th class="w200">医院名称</th>
					<th class="w200">参数类型</th>
					<th class="w150">参数编号</th>
					<th class="w150">参数值</th>
					<th class="w100">状态</th>
					<th class="w150">备注</th>
					<th class="w100">操作</th>
				</tr>
			</thead>
			<tbody v-show="addrow">
				<!-- 添加 -->
				<tr>
					<td>
					</td>
					<!--医院 -->
					<td class="td-yesorno select-style padd_10">
						<select v-model="newobj.medguid" >
							<option v-for="tyselect in hosList" :value="tyselect.guid">{{tyselect.name}}</option>
						</select>
					</td>
					<td class="td-yesorno select-style padd_10">
						<select v-model="newobj.parametertype">
							<option v-for="tyli in typeselects" :value="tyli.value">{{tyli.label}}</option>
						</select>

					</td>
					<td class="td-code  padd_10">
						<input type="text" v-model="newobj.code"></td>
					<!-- 参数值-->
					<td class="td-code  padd_10">
						<input type="text" v-model="newobj.parametervalue"></td>
					<!--<td class="td-yesorno select-style padd_10">

						
						<select-ui :list="paramselect" :empty="false" :selected.sync="newobj.parametervalue">
						</select-ui>
					</td>-->

					<td class="td-type select-style padd_10">
						<select-ui :list="statusselects" :empty="false" :selected.sync="newobj.state">
						</select-ui>
					</td>
					<td class="td-day  padd_10">
						<input type="text" v-model="newobj.memo"></td>
					<td></td>
				</tr>
			</tbody>
			<!--  修改  -->
			<tbody v-for="item in list">
				<tr v-if="item.edit==1">
					<td>
					</td>
					<td class="td-yesorno select-style padd_10">
						<select v-model="item.medguid">
							<option v-for="tyselect in hosList" :value="tyselect.guid">{{tyselect.name}}</option>
						</select>
						<!--<input type="text" v-model="item.name">-->
					</td>
					<!-- 参数类型-->
					<td class="td-yesorno select-style padd_10">
						<select-ui :list="typeselects" :empty="false" :selected.sync="item.parametertype">
						</select-ui>
					</td>
					<td class="td-code  padd_10">
						<input type="text" v-model="item.code">
					</td>

					<!-- 参数值-->
					<td class="td-code  padd_10">
						<input type="text" v-model="item.parametervalue">
					</td>
					<!--<td class="td-yesorno select-style padd_10">
						<select-ui :list="paramselect" :empty="false" :selected.sync="item.parametervalue">
						</select-ui>
					</td>-->
					<td class="td-type select-style padd_10">
						<select-ui :list="statusselects" :empty="false" :selected.sync="item.state">
						</select-ui>
					</td>
					<td class="td-day  padd_10">
						<input type="text" v-model="item.memo">
					</td>
					<td>
						<a class="btn-d btn-d-activate" href="javascript:" v-on:click="save($index,item,item.medguid)">
							保存</a>
						<a class="btn-d btn-d-cancel" href="javascript:" v-on:click="edit($index)">
							取消</a>
					</td>
				</tr>

				<tr :class="{'tr_sty_red':item.state=='n'}" v-else>
					<td>{{$index+1}}</td>
					<td>{{item.name}}</td>
					<td>{{item.parametertype | ft-case typeselects }}</td>
					<td>{{item.code}}</td>
					<td>{{item.parametervalue}}</td>
					<td>{{item.state | ft-state}}</td>
					<td>{{item.memo}}</td>
					<td>
						<a class="btn-d btn-d-activate" href="javascript:" v-on:click="edit($index)">
							修改</a>
						<a class="btn-d btn-d-red" href="javascript:" v-on:click="remove($index)">
							删除</a>
					</td>
				</tr>

			</tbody>

		</table>

		<pagination @page-change="getData" :class="['m-20-0']" :page-no.sync="search.page" :total-pages.sync="search.totalPages"></pagination>

		<!--basic-user-info end-->

	</div>
</template>
<script>
	module.exports = {
		data: function() {
			return {
				list: [],
                search: {
                    pageSize: 10,
                    page: 1,
                    totalPages: 0,
                    name: '',
                    parametertype: '',
                    code: '',
                    parametervalue: ''
                },
				newobj: {
					name: '', // 医院名称
					medguid: '',
					code: '', //数据编号 
					parametervalue: '', //参数值
					parametertype: '', //参数类型
					state: 'Y', //状态
					memo: '', //备注				

				},
				editlist: [],
				addrow: 0,
				// 参数类型
				typeselects: [{
					value: "0",
					label: '业务类'
				}, {
					value: "1",
					label: '系统类'
				}],
				statusselects: [{
					value: 'N',
					label: '无效'
				}, {
					value: 'Y',
					label: '有效'
				}],
				// 参数值
				paramselect: [{
					value: 'N',
					label: '是'
				}, {
					value: 'Y',
					label: '否'
				}],
				hosList: '',
				hosselect: [],
			}
		},
		methods: {
			getData: function(casetxt) { //请求数据
				if(casetxt) {
					this.search.page = 1;
				}
				Ajax.post('/systemdata/distributor/sysparam/getAll', this.search).then(function(res) {
					var result = res.data;
					if(result.errorCode == 0) {
						this.$set('list', result.data.list);
						this.search.totalPages = result.data.totalPages || 0;
					}
				}.bind(this))

				// 医院下拉框
				Ajax.get('/systemdata/getfindmed').then(function(res) {
					var result = res.data;
					if(result.errorCode == 0) {
						this.$set('hosList', result.data);
//						for(var i = 0; i < this.hosList.length; i++) {
//							this.$set('hosselect[' + i + '].label', this.hosList[i].name);
//							this.$set('hosselect[' + i + '].value', this.hosList[i].guid);
//						}

					}
				}.bind(this))

			},
			edit: function(index) { //修改  状态
                var obj = Object.assign({}, this.list[index], {
                    edit: this.list[index].edit ? 0 : 1
                });
                if(obj.edit == 1) {
                    this.editlist[index] = Object.assign({}, obj);
                } else {
                    obj = this.editlist[index];
                    obj.edit = 0;
                }
                this.$set('list[' + index + ']', obj)
			},
			save: function(index,item) { //单个保存
				var name = item.name;
                for (var a = 0; a < this.hosList.length; a++) {
                    if (this.hosList[a].guid == item.medguid) {
                        name = this.hosList[a].name;
                    }
                }

				var osave = {
					guid: this.list[index].guid,
					name: name,// 医院名称
					medguid:item.medguid,
					code: this.list[index].code, //数据编号 
					parametervalue: this.list[index].parametervalue, //参数值
					parametertype: this.list[index].parametertype, //参数类型
					state: this.list[index].state, //状态
					memo: this.list[index].memo, //备注				

				}
				

				Ajax.post('/systemdata/distributor/sysparam/updateParam', osave).then(function(res) {
					var result = res.data;

					if(result.errorCode == 0) {
						this.$set('list[' + index + '].edit', 0)
						this.$set('list[' + index + ']', result.data)
						this.newobj = Object.assign({}, {
							name: '', // 医院名称
							medguid: '',
							code: '', //数据编号
							parametervalue: '', //参数值
							parametertype: '0', //参数类型
							memo: '', //备注				
							state: 'Y', //状态

						});

					} else {
						alert(result.message)
					}
				}.bind(this))

			},
			remove: function(index) { //删除
				var self = this;

				var osave = {
					guid: this.list[index].guid,
					name: this.list[index].name, // 医院名称
					medguid: this.list[index].medguid,
					code: this.list[index].code, //数据编号 
					parametervalue: this.list[index].parametervalue, //参数值
					parametertype: this.list[index].parametertype, //参数类型
					state: this.list[index].state, //状态
					memo: this.list[index].memo //备注				
				};
				self.MessageBox({
					title: '提示',
					message: '是否删除',
					type: 'success',
					showCancelButton: true
				}).then(function(action) {
					if(action == "confirm") {
						Ajax.post('/systemdata/distributor/sysparam/delParam', osave).then(function(res) {
							var result = res.data;
							if(result.errorCode == 0) {
								self.list.splice(index, 1)
							}
						})
					}
				});
			},
			add: function() { //添加
				for(var i = 0; i < this.hosList.length; i++) {
					if(this.newobj.medguid==this.hosList[i].guid){
						this.newobj.name=this.hosList[i].name;
					}
				}
				Ajax.post('/systemdata/distributor/sysparam/addParam', this.newobj).then(function(res) {
					var result = res.data;
					if(result.errorCode == 0) {
						this.list.unshift(this.newobj);
						this.newobj = Object.assign({}, {
							name: '', // 医院名称
							medguid: '',
							code: '', //数据编号
							parametervalue: '', //参数值
							parametertype: '', //参数类型
							memo: '', //备注				
							state: 'Y', //状态

						});
						this.addrow = 0;
						this.getData();

					} else {
						alert(result.message)
					}
				}.bind(this))

			}
		},
		route: {
			activate: function() {
				this.getData();
			}
		},
		watch: {
            'search.parametertype': function() {
                var self = this;
                self.getData(true);
            }
			
		}
	}
</script>