From 308bba296439caa47c2551222c2ed33462580eb6 Mon Sep 17 00:00:00 2001 From: H <30830569@qq.com> Date: Mon, 7 Nov 2022 17:54:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/sys/user.ts | 59 +++- src/router/routes/modules/base.ts | 16 +- src/views/base/base-data/base.data.ts | 34 ++- .../base/crops/base-crops/BaseDrawer.vue | 216 ++++++++++++++ src/views/base/crops/base-crops/base.data.ts | 30 ++ src/views/base/crops/base-crops/index.vue | 86 ++++++ .../base/crops/town-crops/TownDrawer.vue | 267 ++++++++++++------ src/views/base/crops/town-crops/index.vue | 8 +- src/views/base/crops/town-crops/town.data.ts | 119 +------- .../base/estate/shrim-price/PriceDrawer.vue | 80 ++++++ src/views/base/estate/shrim-price/index.vue | 79 ++++++ .../base/estate/shrim-price/shrim-price.ts | 184 ++++++++++++ 12 files changed, 949 insertions(+), 229 deletions(-) create mode 100644 src/views/base/crops/base-crops/BaseDrawer.vue create mode 100644 src/views/base/crops/base-crops/base.data.ts create mode 100644 src/views/base/crops/base-crops/index.vue create mode 100644 src/views/base/estate/shrim-price/PriceDrawer.vue create mode 100644 src/views/base/estate/shrim-price/index.vue create mode 100644 src/views/base/estate/shrim-price/shrim-price.ts diff --git a/src/api/sys/user.ts b/src/api/sys/user.ts index 630d79e6..1ddab244 100644 --- a/src/api/sys/user.ts +++ b/src/api/sys/user.ts @@ -248,17 +248,17 @@ export function editPassword(id: string, data, mode: ErrorMessageMode = 'modal') /** * @description:获取农作物 */ -export function getCrops(data, mode: ErrorMessageMode = 'modal') { - return defHttp.get( - { - url: `/api/crops`, - data, - }, - { - errorMessageMode: mode, - }, - ) -} +// export function getCrops(data, mode: ErrorMessageMode = 'modal') { +// return defHttp.get( +// { +// url: `/api/crops`, +// data, +// }, +// { +// errorMessageMode: mode, +// }, +// ) +// } /** * @description:新增区域数据 @@ -357,10 +357,13 @@ export function addcrops(data, mode: ErrorMessageMode = 'modal') { ) } -export function getCropYields(data, mode: ErrorMessageMode = 'modal') { - return defHttp.post( +/** + * @description:修改农作物 + */ +export function editcrops(id: string, data, mode: ErrorMessageMode = 'modal') { + return defHttp.put( { - url: `/api/crops`, + url: `/api/crops/${id}`, data, }, { @@ -368,3 +371,31 @@ export function getCropYields(data, mode: ErrorMessageMode = 'modal') { }, ) } + +/** + * @description:删除农作物 + */ +export function deleteCrops(id: string, mode: ErrorMessageMode = 'modal') { + return defHttp.delete( + { + url: `/api/crops/${id}`, + }, + { + errorMessageMode: mode, + }, + ) +} +/** + * @description:稻虾价格 - 列表 + */ +export function getShrimpPrices(params, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: `/api/rice-shrimp-prices`, + params, + }, + { + errorMessageMode: mode, + }, + ) +} diff --git a/src/router/routes/modules/base.ts b/src/router/routes/modules/base.ts index da9e4f46..80dbfc31 100644 --- a/src/router/routes/modules/base.ts +++ b/src/router/routes/modules/base.ts @@ -56,7 +56,7 @@ const main: AppRouteModule = { { path: 'basics-crop', name: 'BasicsCrop', - component: () => import('/@/views/base/base-data/index.vue'), + component: () => import('/@/views/base/crops/base-crops/index.vue'), meta: { title: '基地农作物', }, @@ -74,7 +74,7 @@ const main: AppRouteModule = { { path: 'town-yield', name: 'TownYield', - component: () => import('/@/views/base/city-data/index.vue'), + component: () => import('/@/views/base/ranking-list/index1.vue'), meta: { title: '城镇产量', }, @@ -82,7 +82,7 @@ const main: AppRouteModule = { { path: 'basics-yield', name: 'BasicsYield', - component: () => import('/@/views/base/base-data/index.vue'), + component: () => import('/@/views/base/ranking-list/index1.vue'), meta: { title: '基地产量', }, @@ -90,17 +90,17 @@ const main: AppRouteModule = { ], }, { - path: 'industry', - name: 'Industry', + path: 'estate', + name: 'estate', meta: { title: '重点产业', // icon: 'ion:key-outline', }, children: [ { - path: 'industry-price', - name: 'IndustryPrice', - component: () => import('/@/views/base/city-data/index.vue'), + path: 'estate-price', + name: 'EstatePrice', + component: () => import('/@/views/base/estate/shrim-price/index.vue'), meta: { title: '稻虾价格', }, diff --git a/src/views/base/base-data/base.data.ts b/src/views/base/base-data/base.data.ts index efdd56a2..ba6fc111 100644 --- a/src/views/base/base-data/base.data.ts +++ b/src/views/base/base-data/base.data.ts @@ -1,6 +1,6 @@ import { BasicColumn } from '/@/components/Table' import { FormSchema } from '/@/components/Table' -import { getCrops } from '/@/api/sys/user' +import { getcrops, getTownAgriculturalBasic } from '/@/api/sys/user' export const columns: BasicColumn[] = [ { title: '基地名称', @@ -66,12 +66,7 @@ export const accountFormSchema: FormSchema[] = [ required: true, component: 'Input', }, - { - field: 'address', - label: '基地地址', - required: true, - component: 'Input', - }, + { field: 'person', label: '基地负责人', @@ -90,6 +85,20 @@ export const accountFormSchema: FormSchema[] = [ required: true, component: 'Input', }, + { + field: 'parent_id', + label: '城镇', + required: true, + component: 'ApiSelect', + componentProps: { + api: async () => { + const res = await getTownAgriculturalBasic({ type: 2 }) + return res + }, + labelField: 'name', + valueField: 'id', + }, + }, { field: 'crops_ids', label: '基地农作物', @@ -97,11 +106,11 @@ export const accountFormSchema: FormSchema[] = [ component: 'ApiSelect', componentProps: { api: async () => { - const res = await getCrops({ type: 'all', crop_type: 1 }) + const res = await getcrops({ type: 'all', crop_type: 1 }) return res.map((e) => { return { ...e, - disabled: e.is_end === 1, + disabled: e.is_end === 0, } }) }, @@ -110,7 +119,12 @@ export const accountFormSchema: FormSchema[] = [ mode: 'multiple', }, }, - + { + field: 'address', + label: '基地地址', + required: true, + component: 'Input', + }, { field: 'description', label: '基地介绍', diff --git a/src/views/base/crops/base-crops/BaseDrawer.vue b/src/views/base/crops/base-crops/BaseDrawer.vue new file mode 100644 index 00000000..e6826547 --- /dev/null +++ b/src/views/base/crops/base-crops/BaseDrawer.vue @@ -0,0 +1,216 @@ + + diff --git a/src/views/base/crops/base-crops/base.data.ts b/src/views/base/crops/base-crops/base.data.ts new file mode 100644 index 00000000..948da9a2 --- /dev/null +++ b/src/views/base/crops/base-crops/base.data.ts @@ -0,0 +1,30 @@ +import { BasicColumn } from '/@/components/Table' +import { FormSchema } from '/@/components/Table' +export const columns: BasicColumn[] = [ + { + title: '名称', + dataIndex: 'name', + }, + { + title: '单位', + dataIndex: 'unit', + }, + { + title: '是否是结点', + dataIndex: 'is_end', + customRender: ({ text }) => { + return text == 1 ? '是' : '否' + }, + }, + { + width: 180, + title: '操作', + dataIndex: 'action', + align: 'center', + fixed: undefined, + }, +] + +export const searchFormSchema: FormSchema[] = [] + +export const accountFormSchema: FormSchema[] = [] diff --git a/src/views/base/crops/base-crops/index.vue b/src/views/base/crops/base-crops/index.vue new file mode 100644 index 00000000..58f63ed8 --- /dev/null +++ b/src/views/base/crops/base-crops/index.vue @@ -0,0 +1,86 @@ + + diff --git a/src/views/base/crops/town-crops/TownDrawer.vue b/src/views/base/crops/town-crops/TownDrawer.vue index 5d04fc58..7a1f5735 100644 --- a/src/views/base/crops/town-crops/TownDrawer.vue +++ b/src/views/base/crops/town-crops/TownDrawer.vue @@ -8,108 +8,209 @@ @ok="handleSubmit" > -
+
+ + + + + + + + + + + + + + + + + + + + +
diff --git a/src/views/base/crops/town-crops/index.vue b/src/views/base/crops/town-crops/index.vue index 25c8c63a..7fba957d 100644 --- a/src/views/base/crops/town-crops/index.vue +++ b/src/views/base/crops/town-crops/index.vue @@ -38,7 +38,7 @@ diff --git a/src/views/base/estate/shrim-price/index.vue b/src/views/base/estate/shrim-price/index.vue new file mode 100644 index 00000000..9351dc21 --- /dev/null +++ b/src/views/base/estate/shrim-price/index.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/views/base/estate/shrim-price/shrim-price.ts b/src/views/base/estate/shrim-price/shrim-price.ts new file mode 100644 index 00000000..bc7dd6ab --- /dev/null +++ b/src/views/base/estate/shrim-price/shrim-price.ts @@ -0,0 +1,184 @@ +import { BasicColumn } from '/@/components/Table' +import { FormSchema } from '/@/components/Table' +import { getAgriculturalBasic } from '/@/api/sys/user' +import { getDeviceTypes } from '/@/api/sys/other' +import { h } from 'vue' +import { DatePicker } from 'ant-design-vue' +function formatDataByObject(obj): any[] { + const arr: any[] = [] + Object.keys(obj).forEach((e) => { + arr.push({ + label: obj[e], + value: e, + }) + }) + return arr +} +export const columns: BasicColumn[] = [ + { + title: '年份', + dataIndex: 'year', + customRender: ({ text }) => { + return text + '年' + }, + }, + { + title: '季度', + dataIndex: 'quarter', + }, + { + title: '价格', + dataIndex: 'price', + }, + { + title: '创建人', + dataIndex: 'name', + customRender: ({ record: { created_by } }) => { + return created_by.name + }, + }, + + { + width: 180, + title: '操作', + dataIndex: 'action', + align: 'center', + fixed: undefined, + }, +] + +export const searchFormSchema: FormSchema[] = [ + { + field: 'year', + label: '年份', + component: 'Input', + render: ({ model, field }) => { + return h(DatePicker, { + placeholder: '请选择年份', + picker: 'year', + mode: 'year', + onChange: (e) => { + model[field] = e['$y'] + }, + }) + }, + colProps: { span: 6 }, + }, + { + field: 'quarter', + label: '季度', + component: 'Select', + componentProps: { + options: [ + { label: '第一季度', value: '1' }, + { label: '第二季度', value: '2' }, + { label: '第三季度', value: '3' }, + { label: '第四季度', value: '4' }, + ], + }, + colProps: { span: 6 }, + }, +] + +export const accountFormSchema: FormSchema[] = [ + { + field: 'id', + label: '设备ID', + required: false, + dynamicDisabled: true, + component: 'Input', + ifShow: ({ values }) => { + return !!values.id + }, + }, + { + field: 'type', + label: '设备类型', + required: true, + component: 'ApiSelect', + componentProps: { + api: async () => { + const res = await getDeviceTypes() + return formatDataByObject(res) + }, + }, + }, + { + field: 'agricultural_base_id', + label: '基地', + required: true, + component: 'ApiSelect', + componentProps: { + api: getAgriculturalBasic, + labelField: 'name', + valueField: 'id', + }, + }, + { + field: 'sn', + label: '设备编号', + required: true, + component: 'Input', + }, + { + field: 'monitoring_point', + label: '监控点', + required: true, + component: 'Input', + }, + { + field: 'extends.ip', + label: '设备IP', + required: true, + component: 'Input', + ifShow: ({ values }) => { + return !!(values.type == 1) + }, + }, + { + field: 'extends.port', + label: '设备端口', + required: true, + component: 'Input', + ifShow: ({ values }) => { + return !!(values.type == 1) + }, + }, + { + field: 'extends.rtsp_url', + label: 'RTSP地址', + required: true, + component: 'Input', + ifShow: ({ values }) => { + return !!(values.type == 1) + }, + }, + + { + field: 'extends.username', + label: '设备登录名', + required: true, + component: 'Input', + ifShow: ({ values }) => { + return !!(values.type == 1) + }, + }, + { + field: 'extends.password', + label: '设备登录密码', + required: true, + component: 'Input', + ifShow: ({ values }) => { + return !!(values.type == 1) + }, + }, + { + field: 'extends.passage', + label: '设备播放通道', + required: true, + component: 'Input', + ifShow: ({ values }) => { + return !!(values.type == 1) + }, + }, +]