于宏哲PHP 10 months ago
parent
commit
e2900e6d24
  1. 24
      admin/src/app/lang/zh-cn/course.course.json
  2. 17
      admin/src/app/views/course/course.vue
  3. 12
      admin/src/app/views/dict/components/dict.vue
  4. 2
      admin/src/components/editor/index.vue
  5. 2
      niucloud/app/adminapi/controller/student/Student.php
  6. 37
      niucloud/app/service/admin/student/StudentService.php

24
admin/src/app/lang/zh-cn/course.course.json

@ -25,5 +25,27 @@
"startDate": "请选择开始时间", "startDate": "请选择开始时间",
"endDate": "请选择结束时间", "endDate": "请选择结束时间",
"giftSessionCount": "赠送课时", "giftSessionCount": "赠送课时",
"giftSessionCountPlaceholder": "请输入赠送课时" "giftSessionCountPlaceholder": "请输入赠送课时",
"name": "字典名称",
"namePlaceholder": "请输入字典名称",
"key": "字典关键词",
"keyPlaceholder": "请输入字典关键词",
"data": "字典数据",
"dataPlaceholder": "请输入字典数据",
"memo": "备注",
"memoPlaceholder": "请输入备注",
"addDict": "添加数据字典",
"updateDict": "编辑数据字典",
"dictDeleteTips": "确定要删除该数据吗?",
"dictData": "数据管理",
"addDictData": "添加数据",
"editDictData": "编辑数据",
"dataName": "数据名称",
"dataNamePlaceholder": "请输入数据名称",
"dataValue": "数据值",
"dataValuePlaceholder": "请输入数据值",
"sortPlaceholder": "数值越大越排前",
"momePlaceholder": "请输入备注",
"createTime": "创建时间",
"keyFormatTips": "关键字只允许输入字母和下划线"
} }

17
admin/src/app/views/course/course.vue

@ -6,6 +6,8 @@
<el-button type="primary" @click="addEvent"> <el-button type="primary" @click="addEvent">
{{ t('addCourse') }} {{ t('addCourse') }}
</el-button> </el-button>
</div> </div>
<el-card <el-card
@ -45,6 +47,11 @@
<el-button @click="resetForm(searchFormRef)">{{ <el-button @click="resetForm(searchFormRef)">{{
t('reset') t('reset')
}}</el-button> }}</el-button>
<el-button type="primary" @click="dictData">
添加课程类型
</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </el-card>
@ -152,6 +159,9 @@
<edit ref="editCourseDialog" @complete="loadCourseList" /> <edit ref="editCourseDialog" @complete="loadCourseList" />
<contract ref="contractDialog" @complete="loadCourseList" /> <contract ref="contractDialog" @complete="loadCourseList" />
<dict ref="dictDialog" @complete="loadCourseList" />
</el-card> </el-card>
</div> </div>
</template> </template>
@ -165,6 +175,7 @@ import { img } from '@/utils/common'
import { ElMessageBox, FormInstance } from 'element-plus' import { ElMessageBox, FormInstance } from 'element-plus'
import Edit from '@/app/views/course/components/course-edit.vue' import Edit from '@/app/views/course/components/course-edit.vue'
import Contract from '@/app/views/course/components/change_course.vue' import Contract from '@/app/views/course/components/change_course.vue'
import dict from '@/app/views/dict/components/dict.vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
const pageName = route.meta.title const pageName = route.meta.title
@ -189,6 +200,12 @@ let courseTable = reactive({
}) })
// const courseTypeList = useDictionary('course_type') // const courseTypeList = useDictionary('course_type')
const dictDialog: Record<string, any> | null = ref(null)
const dictData = () => {
dictDialog.value.setFormData({id:22,name:'课程类型'})
}
const courseTypeList = ref([]) const courseTypeList = ref([])
const getcourseTypeList = async () => { const getcourseTypeList = async () => {

12
admin/src/app/views/dict/components/dict.vue

@ -1,28 +1,28 @@
<template> <template>
<el-dialog <el-dialog
v-model="showDialog" v-model="showDialog"
:title="t('dictData')" title="数据管理"
width="60%" width="60%"
class="diy-dialog-wrap" class="diy-dialog-wrap"
:destroy-on-close="true" :destroy-on-close="true"
> >
<div class="mb-[10px]"> <div class="mb-[10px]">
<el-button type="primary" @click="addEvent"> <el-button type="primary" @click="addEvent">
{{ t('addDictData') }} 添加数据
</el-button> </el-button>
</div> </div>
<el-table :data="tableDate" size="large" v-loading="loading"> <el-table :data="tableDate" size="large" v-loading="loading">
<el-table-column :label="t('dataName')" prop="name" /> <el-table-column label="数据名称" prop="name" />
<el-table-column :label="t('dataValue')" prop="value" /> <el-table-column label="数据值" prop="value" />
<el-table-column <el-table-column
:label="t('sort')" label="备注"
align="center" align="center"
min-width="100px" min-width="100px"
prop="sort" prop="sort"
/> />
<el-table-column :label="t('memo')" prop="memo" /> <el-table-column :label="t('memo')" prop="memo" />
<el-table-column <el-table-column
:label="t('operation')" label="操作"
align="right" align="right"
fixed="right" fixed="right"
width="120" width="120"

2
admin/src/components/editor/index.vue

@ -65,7 +65,7 @@ const editorConfig = ref({
UEDITOR_HOME_URL: UEDITOR_HOME_URL:
import.meta.env.MODE == 'development' import.meta.env.MODE == 'development'
? '/public/ueditor/' ? '/public/ueditor/'
: '/admin/ueditor/', : '/ueditor/',
serverUrl: `${baseUrl}sys/ueditor`, serverUrl: `${baseUrl}sys/ueditor`,
serverHeaders, serverHeaders,
// //

2
niucloud/app/adminapi/controller/student/Student.php

@ -32,7 +32,7 @@ class Student extends BaseAdminController
["name",""], ["name",""],
["emergency_contact",""], ["emergency_contact",""],
["contact_phone",""], ["contact_phone",""],
["created_at",["",""]], ["created_at",[]],
['member_label', 0], ['member_label', 0],
["class_id",""] ["class_id",""]
]); ]);

37
niucloud/app/service/admin/student/StudentService.php

@ -40,12 +40,45 @@ class StudentService extends BaseAdminService
* @param array $where * @param array $where
* @return array * @return array
*/ */
public function getPage(array $where = []) public function getPage(array $data = [])
{ {
$field = 'id,user_id,campus_id,class_id,name,gender,age,birthday,member_label,emergency_contact,contact_phone,note,status,created_at,updated_at,deleted_at'; $field = 'id,user_id,campus_id,class_id,name,gender,age,birthday,member_label,emergency_contact,contact_phone,note,status,created_at,updated_at,deleted_at';
$order = 'id desc'; $order = 'id desc';
$search_model = $this->model->withSearch(["campus_id", "name", "emergency_contact", "contact_phone", "created_at", "member_label","class_id"], $where)->with(['customerResources', 'campus', 'classGrade'])->field($field)->order($order); $where = [];
if($data['campus_id']){
$where[] = ['campus_id','=',$data['campus_id']];
}
if($data['name']){
$where[] = ['name','=',$data['name']];
}
if($data['emergency_contact']){
$where[] = ['emergency_contact','=',$data['emergency_contact']];
}
if($data['contact_phone']){
$where[] = ['contact_phone','=',$data['contact_phone']];
}
if($data['class_id']){
$where[] = ['class_id','=',$data['class_id']];
}
if ($data['member_label']) {
$where[] = ['a.member_label', 'like', "%" . $data['member_label'] . "%"];
}
$search_model = $this->model->where($where)->with(['customerResources', 'campus', 'classGrade'])->field($field)->order($order);
if (isset($data['created_at'][0]) && isset($data['created_at'][1])) {
$search_model->whereBetweenTime('created_at', $data['created_at'][0] . "00:00:00", $data['created_at'][1] . "23:59:59");
}
return $this->pageQuery($search_model, function ($item, $key) { return $this->pageQuery($search_model, function ($item, $key) {
$item = $this->makeUp($item); $item = $this->makeUp($item);
}); });

Loading…
Cancel
Save