diff --git a/admin/src/addon/zhjw/api/common.ts b/admin/src/addon/zhjw/api/common.ts
new file mode 100644
index 00000000..33d71efa
--- /dev/null
+++ b/admin/src/addon/zhjw/api/common.ts
@@ -0,0 +1,11 @@
+
+import request from '@/utils/request'
+
+/**
+ * 公共通用接口
+ */
+
+// 获取地区树形结构
+export function getAreaTree() {
+ return request.get(`zhjw/common/getAreaTree`)
+}
\ No newline at end of file
diff --git a/admin/src/addon/zhjw/views/sales/sales_edit.vue b/admin/src/addon/zhjw/views/sales/sales_edit.vue
index a6d02d75..31a01b85 100644
--- a/admin/src/addon/zhjw/views/sales/sales_edit.vue
+++ b/admin/src/addon/zhjw/views/sales/sales_edit.vue
@@ -108,42 +108,17 @@
class="input-width"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -180,6 +155,7 @@ import {t} from '@/lang'
import {useDictionary} from '@/app/api/dict'
import type {FormInstance} from 'element-plus'
import {getSalesInfo, addSales, editSales, getWithStaffList, getWithSysAreaList} from '@/addon/zhjw/api/sales';
+import {getAreaTree} from '@/addon/zhjw/api/common';
import {useRoute} from 'vue-router'
const route = useRoute()
@@ -210,10 +186,54 @@ const initialFormData = {
district_id: '',
community_name: '',
customer_tags: '',
+ full_address: '',
+ full_address_id: [],//选中后的值 格式=[130000,130300,130304]
}
const formData: Record = reactive({...initialFormData})
+
+//地址下拉三级联动
+const options_area = ref([]);//地址选择树形结构
+//获取地址树形结构
+const getAreaTreeArr = async () => {
+ options_area.value = await (await getAreaTree()).data
+}
+getAreaTreeArr()
+//监听地址选择
+const changeArea = (selectedValues: any[]) => {
+ console.log('用户选择的地址值:', selectedValues);
+
+ // 将选中的地址信息存储到 formData 中
+ if (selectedValues.length >= 1) {
+ formData.province_id = selectedValues[0]; // 省级 ID
+ }
+ if (selectedValues.length >= 2) {
+ formData.city_id = selectedValues[1]; // 市级 ID
+ }
+ if (selectedValues.length >= 3) {
+ formData.district_id = selectedValues[2]; // 区级 ID
+ }
+
+ // 查找省、市、区的中文名称
+ const province = options_area.value.find((item: any) => item.id == selectedValues[0]);
+ const city = province?.children?.find((item: any) => item.id == selectedValues[1]);
+ const district = city?.children?.find((item: any) => item.id == selectedValues[2]);
+
+ // 拼接省-市-区中文名称
+ let full_address = `${province?.name || ''}-${city?.name || ''}-${district?.name || ''}`;
+ formData.full_address = full_address;
+
+ console.log('更新后的 formData:', formData,formData.full_address_id);
+
+
+
+
+
+
+};
+
+
const setFormData = async (id: number = 0) => {
Object.assign(formData, initialFormData)
const data = await (await getSalesInfo(id)).data
@@ -269,21 +289,8 @@ const setGetStaffIdList = async () => {
getStaffIdList.value = await (await getWithStaffList({})).data
}
setGetStaffIdList()
-const provinceIdList = ref([] as any[])
-const setProvinceIdList = async () => {
- provinceIdList.value = await (await getWithSysAreaList({})).data
-}
-setProvinceIdList()
-const cityIdList = ref([] as any[])
-const setCityIdList = async () => {
- cityIdList.value = await (await getWithSysAreaList({})).data
-}
-setCityIdList()
-const districtIdList = ref([] as any[])
-const setDistrictIdList = async () => {
- districtIdList.value = await (await getWithSysAreaList({})).data
-}
-setDistrictIdList()
+
+
// 表单验证规则
const formRules = computed(() => {
return {
diff --git a/niucloud/addon/zhjw/app/adminapi/controller/common/Common.php b/niucloud/addon/zhjw/app/adminapi/controller/common/Common.php
new file mode 100644
index 00000000..5a823bf8
--- /dev/null
+++ b/niucloud/addon/zhjw/app/adminapi/controller/common/Common.php
@@ -0,0 +1,47 @@
+order('sort', 'asc')
+ ->select()
+ ->toArray();
+
+ // 构建树形结构
+ $tree = (new CommonService())->areaBuildTree($areas);
+
+ return success($tree);
+
+ }
+
+
+}
diff --git a/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php b/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php
index 8395c581..87579ec1 100644
--- a/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php
+++ b/niucloud/addon/zhjw/app/adminapi/controller/orders/Orders.php
@@ -12,7 +12,7 @@
namespace addon\zhjw\app\adminapi\controller\orders;
use core\base\BaseAdminController;
-use addon\zhjw\app\service\admin\orders\OrdersService;
+use addon\zhjw\app\service\admin\orders\CommonService;
/**
@@ -37,7 +37,7 @@ class Orders extends BaseAdminController
["payment_time",["",""]],
["create_time",["",""]]
]);
- return success((new OrdersService())->getPage($data));
+ return success((new CommonService())->getPage($data));
}
/**
@@ -46,7 +46,7 @@ class Orders extends BaseAdminController
* @return \think\Response
*/
public function info(int $id){
- return success((new OrdersService())->getInfo($id));
+ return success((new CommonService())->getInfo($id));
}
/**
@@ -65,7 +65,7 @@ class Orders extends BaseAdminController
]);
$this->validate($data, 'addon\zhjw\app\validate\orders\Orders.add');
- $id = (new OrdersService())->add($data);
+ $id = (new CommonService())->add($data);
return success('ADD_SUCCESS', ['id' => $id]);
}
@@ -86,7 +86,7 @@ class Orders extends BaseAdminController
]);
$this->validate($data, 'addon\zhjw\app\validate\orders\Orders.edit');
- (new OrdersService())->edit($id, $data);
+ (new CommonService())->edit($id, $data);
return success('EDIT_SUCCESS');
}
@@ -96,17 +96,17 @@ class Orders extends BaseAdminController
* @return \think\Response
*/
public function del(int $id){
- (new OrdersService())->del($id);
+ (new CommonService())->del($id);
return success('DELETE_SUCCESS');
}
public function getStudentsAll(){
- return success(( new OrdersService())->getStudentsAll());
+ return success(( new CommonService())->getStudentsAll());
}
public function getContractsAll(){
- return success(( new OrdersService())->getContractsAll());
+ return success(( new CommonService())->getContractsAll());
}
}
diff --git a/niucloud/addon/zhjw/app/adminapi/route/route.php b/niucloud/addon/zhjw/app/adminapi/route/route.php
index afac5e9b..b27ff7a1 100644
--- a/niucloud/addon/zhjw/app/adminapi/route/route.php
+++ b/niucloud/addon/zhjw/app/adminapi/route/route.php
@@ -29,6 +29,21 @@ Route::group('zhjw', function () {
AdminLog::class
]);
+// USER_CODE_BEGIN -- 公共控制器
+
+Route::group('zhjw/common', function () {
+
+ //班级管理列表
+ Route::get('getAreaTree', 'addon\zhjw\app\adminapi\controller\common\Common@getAreaTree');
+
+
+})->middleware([
+ AdminCheckToken::class,
+ AdminCheckRole::class,
+ AdminLog::class
+]);
+// USER_CODE_END -- 公共控制器
+
diff --git a/niucloud/addon/zhjw/app/service/admin/common/CommonService.php b/niucloud/addon/zhjw/app/service/admin/common/CommonService.php
new file mode 100644
index 00000000..f6b18610
--- /dev/null
+++ b/niucloud/addon/zhjw/app/service/admin/common/CommonService.php
@@ -0,0 +1,71 @@
+model->withSearch(["student_id","contract_id","amount","order_type","pay_type","payment_status","payment_time","create_time"], $where)->with(['students','contracts'])->field($field)->order($order);
+ $list = $this->pageQuery($search_model);
+ return $list;
+ }
+
+ /**
+ * 构建树形结构
+ * @param array $areas 所有地址数据
+ * @param int $pid 父级ID
+ * @return array
+ */
+ public function areaBuildTree(array $areas, int $pid = 0)
+ {
+ $tree = [];
+ foreach ($areas as $area) {
+ if ($area['pid'] == $pid) {
+ $children = $this->areaBuildTree($areas, $area['id']);
+ if ($children) {
+ $area['children'] = $children;
+ }
+ $tree[] = $area;
+ }
+ }
+ return $tree;
+ }
+
+
+
+}