This commit is contained in:
孟帅
2022-02-25 17:11:17 +08:00
parent 9bd05abb2c
commit 8f3d679a57
897 changed files with 95731 additions and 0 deletions

View File

@@ -0,0 +1,129 @@
<template>
<view class="wrap">
<u-form class="form" :model="model" :rules="rules" ref="uForm" label-position="left">
<u-form-item label="编号" prop="id" label-width="180" v-if="model.id">
<u-input placeholder="请输入编号" v-model="model.id" type="text" maxlength="64"></u-input>
</u-form-item>
<u-form-item label="单行文本" prop="testInput" label-width="180">
<u-input placeholder="请输入单行文本" v-model="model.testInput" type="text" maxlength="200"></u-input>
</u-form-item>
<u-form-item label="多行文本" prop="testTextarea" label-width="180" label-position="top">
<u-input type="textarea" placeholder="请输入多行文本" v-model="model.testTextarea" height="100" maxlength="500" />
</u-form-item>
<u-form-item label="下拉框" prop="testSelect" label-width="180">
<js-select v-model="model.testSelect" dict-type="sys_menu_type" placeholder="请选择选项"></js-select>
</u-form-item>
<!-- <u-form-item label="下拉框(树结构)" prop="testSelectMultiple" label-width="260">
<js-select v-model="model.testSelectMultiple" dict-type="app_tree_test" placeholder="请选择选项" :tree="true"
:label-value="model.testSelectMultipleLabel" @label-input="model.testSelectMultipleLabel = $event"></js-select>
</u-form-item> -->
<u-form-item label="单选框" prop="testRadio" label-width="180">
<js-radio v-model="model.testRadio" dict-type="sys_menu_type"></js-radio>
</u-form-item>
<u-form-item label="复选框" prop="testCheckbox" label-width="180">
<js-checkbox v-model="model.testCheckbox" dict-type="sys_menu_type"></js-checkbox>
</u-form-item>
<u-form-item label="机构选择" prop="testOffice" label-width="180">
<js-select v-model="model.testOffice.officeCode" :items="officeSelectList" placeholder="请选择机构" :tree="true"
:label-value="model.testOffice.officeName" @label-input="model.testOffice.officeName = $event"></js-select>
</u-form-item>
<u-form-item label="人员选择" prop="testUser" label-width="180">
<js-select v-model="model.testUser.userCode" :items="userSelectList" placeholder="请选择人员" :tree="true"
:label-value="model.testUser.userName" @label-input="model.testUser.userName = $event"></js-select>
</u-form-item>
<u-form-item label="上传图片(选填)" prop="images" label-position="top">
<js-uploadfile v-model="model.dataMap" :biz-key="model.id" biz-type="testData_image"></js-uploadfile>
</u-form-item>
</u-form>
<view class="form-footer">
<u-button class="btn" type="primary" @click="submit">提交</u-button>
<!-- <u-button class="btn" type="default" @click="cancel">关闭</u-button> -->
</view>
</view>
</template>
<script>
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
export default {
data() {
return {
model: {
id: '',
testInput: '',
testTextarea: '',
testSelect: '',
testSelectMultiple: '',
testSelectMultipleLabel: '',
testRadio: '',
testCheckbox: '',
testUser: {
userCode: '',
userName: ''
},
testOffice: {
officeCode: '',
officeName: ''
}
},
rules: {
testInput: [
{
required: true,
message: '请输入单行文本',
trigger: ['change','blur'],
}
]
},
officeSelectList: [],
userSelectList: [],
};
},
onLoad(params){
this.$u.api.testData.form(params).then(res => {
Object.assign(this.model, res.testData);
});
},
onReady() {
this.$refs.uForm.setRules(this.rules);
// 机构数据
this.$u.api.office.treeData().then(res => {
this.officeSelectList = res;
});
// 人员和机构数据
this.$u.api.office.treeData({isLoadUser: true}).then(res => {
this.userSelectList = res;
});
},
methods: {
submit() {
//console.log(this.model)
this.$refs.uForm.validate(valid => {
if (valid) {
this.$u.api.testData.save(this.model).then(res => {
uni.showModal({
title: '提示',
content: res.message,
showCancel: false,
success: function () {
if (res.result == 'true') {
uni.setStorageSync('refreshList', true);
uni.navigateBack();
}
}
});
});
} else {
this.$u.toast('您填写的信息有误,请根据提示修正。');
}
});
},
cancel() {
uni.navigateBack();
}
}
};
</script>
<style lang="scss">
</style>

View File

@@ -0,0 +1,123 @@
<template>
<view class="wrap">
<view class="search">
<u-search v-model="keywords" @custom="search" @search="search"></u-search>
</view>
<scroll-view class="scroll-list" scroll-y="true" @scrolltolower="loadMore">
<u-cell-group class="list" :border="false">
<u-swipe-action :options="options" v-for="(item, index) in list" :key="item.id" :index="index" @click="optionsClick">
<u-cell-item :arrow="true" @click="navTo('form?id='+item.id)">
<text slot="title">ID: {{item.testInput || item.id}}</text>
<text slot="label">访问路径{{item.url}} &nbsp;|&nbsp; 时间{{item.created_at}}</text>
</u-cell-item>
</u-swipe-action>
</u-cell-group>
<view class="loadmore" @click="loadMore">
<u-loadmore :status="loadStatus"></u-loadmore>
</view>
</scroll-view>
<view class="btn-plus" @click="navTo('form')">
<u-icon name="plus-circle-fill" size="90" color="#3d87ff"></u-icon>
</view>
</view>
</template>
<script>
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
export default {
data() {
return {
keywords: '',
query: {
pageNo: 1,
pageSize: 20
},
list: [],
count: 0,
loadStatus: 'loadmore',
options: [
{text: '删除', style: { background: '#dd524d'}}
]
};
},
onLoad() {
this.loadList();
},
onShow() {
if (uni.getStorageSync('refreshList') === true){
uni.removeStorageSync('refreshList');
this.search('');
}
},
methods: {
loadMore() {
this.loadStatus = "loading";
setTimeout(() => {
this.query.pageNo += 1;
this.loadList();
}, 100);
},
loadList() {
this.$u.api.testData.list(this.query).then(res => {
if (!res.data.list || res.data.list.length === 0){
this.loadStatus = "nomore";
return;
}
this.list = this.list.concat(res.data.list);
this.count = res.data.total_count;
this.query.pageNo = res.data.page;
this.query.pageSize = res.data.limit;
this.loadStatus = "loadmore";
});
},
optionsClick(rowIndex, btnIndex) {
if(btnIndex == 0) {
let self = this;
uni.showModal({
title: '提示',
content: '确认要删除该数据吗?',
showCancel: true,
success: function (res2) {
if (res2.confirm) {
let row = self.list[rowIndex];
self.$u.api.testData.delete({id: row.id}).then(res => {
self.$u.toast(res.message);
if (res.result == 'true'){
self.list.splice(rowIndex, 1);
}
});
}
}
});
}
},
search(value) {
this.list = [];
this.query.pageNo = 0;
this.query.testInput = value;
this.loadList();
},
navTo(url) {
uni.navigateTo({
url: url
});
}
}
};
</script>
<style lang="scss">
page {
background-color: #f8f8f8;
}
.btn-plus {
position: absolute;
bottom: 50rpx;
right: 50rpx;
z-index: 1;
opacity: 0.6;
}
.btn-plus:hover {
opacity: 1;
}
</style>