diff --git a/src/api/sys/user.ts b/src/api/sys/user.ts
index 412d51b3..80d2e02a 100644
--- a/src/api/sys/user.ts
+++ b/src/api/sys/user.ts
@@ -245,21 +245,6 @@ 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,
-// },
-// )
-// }
-
/**
* @description:新增区域数据
*/
@@ -400,12 +385,62 @@ export function getShrimpPrices(params, mode: ErrorMessageMode = 'modal') {
)
}
/**
+<<<<<<< HEAD
* @description:getCropYields
*/
export function getCropYields(params, mode: ErrorMessageMode = 'modal') {
return defHttp.get(
{
url: `/api/rice-shrimp-prices`,
+=======
+ * @description:稻虾价格 - 添加
+ */
+export function addShrimpPrices(data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.post(
+ {
+ url: `/api/rice-shrimp-prices`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾价格 - 修改
+ */
+export function editShrimpPrices(id: string, data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.put(
+ {
+ url: `/api/rice-shrimp-prices/${id}`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾价格 - 删除
+ */
+export function deleteShrimpPrices(id: string, mode: ErrorMessageMode = 'modal') {
+ return defHttp.delete(
+ {
+ url: `/api/rice-shrimp-prices/${id}`,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾产业 - 列表
+ */
+export function getShrimpIndustries(params, mode: ErrorMessageMode = 'modal') {
+ return defHttp.get(
+ {
+ url: `/api/rice-shrimp-industries`,
+>>>>>>> 3938cb121abb57822ba7daa68754d32be79f7dce
params,
},
{
@@ -413,3 +448,219 @@ export function getCropYields(params, mode: ErrorMessageMode = 'modal') {
},
)
}
+<<<<<<< HEAD
+=======
+/**
+ * @description:稻虾产业 - 添加
+ */
+export function addShrimpIndustries(data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.post(
+ {
+ url: `/api/rice-shrimp-industries`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾产业 - 编辑
+ */
+export function editShrimpIndustries(id: string, data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.put(
+ {
+ url: `/api/rice-shrimp-industries/${id}`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾产业 - 删除
+ */
+export function deleteShrimpIndustries(id: string, mode: ErrorMessageMode = 'modal') {
+ return defHttp.delete(
+ {
+ url: `/api/rice-shrimp-industries/${id}`,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+
+/**
+ * @description:稻虾流向 - 列表
+ */
+export function getShrimpFlows(params, mode: ErrorMessageMode = 'modal') {
+ return defHttp.get(
+ {
+ url: `/api/rice-shrimp-flows`,
+ params,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾产业 - 添加
+ */
+export function addShrimpFlows(data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.post(
+ {
+ url: `/api/rice-shrimp-flows`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾产业 - 编辑
+ */
+export function editShrimpFlows(id: string, data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.put(
+ {
+ url: `/api/rice-shrimp-flows/${id}`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:稻虾产业 - 删除
+ */
+export function deleteShrimpFlows(id: string, mode: ErrorMessageMode = 'modal') {
+ return defHttp.delete(
+ {
+ url: `/api/rice-shrimp-flows/${id}`,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+
+/**
+ * @description:大宗物资 - 列表
+ */
+export function getMateriels(params, mode: ErrorMessageMode = 'modal') {
+ return defHttp.get(
+ {
+ url: `/api/materiels`,
+ params,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:大宗物资 - 添加
+ */
+export function addMateriels(data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.post(
+ {
+ url: `/api/materiels`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:大宗物资 - 编辑
+ */
+export function editMateriels(id: string, data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.put(
+ {
+ url: `/api/materiels/${id}`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+/**
+ * @description:大宗物资 - 删除
+ */
+export function deleteMateriels(id: string, mode: ErrorMessageMode = 'modal') {
+ return defHttp.delete(
+ {
+ url: `/api/materiels/${id}`,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+
+/**
+ * @description:查看农作物产量
+ */
+export function getCropYields(params, mode: ErrorMessageMode = 'modal') {
+ params.isReturnNativeResponse = false
+ return defHttp.get(
+ {
+ url: `/api/crop-yields`,
+ params,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+
+/**
+ * @description:添加农作物产量
+ */
+export function addCropYields(data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.post(
+ {
+ url: `/api/crop-yields`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+
+/**
+ * @description:更新农作物产量
+ */
+export function editCropYields(id: string, data, mode: ErrorMessageMode = 'modal') {
+ return defHttp.put(
+ {
+ url: `/api/crop-yields/${id}`,
+ data,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+
+/**
+ * @description:删除农作物产量
+ */
+export function deleteCropYields(id: string, mode: ErrorMessageMode = 'modal') {
+ return defHttp.delete(
+ {
+ url: `/api/crop-yields/${id}`,
+ },
+ {
+ errorMessageMode: mode,
+ },
+ )
+}
+>>>>>>> 3938cb121abb57822ba7daa68754d32be79f7dce
diff --git a/src/router/routes/modules/base.ts b/src/router/routes/modules/base.ts
index 80dbfc31..5c597355 100644
--- a/src/router/routes/modules/base.ts
+++ b/src/router/routes/modules/base.ts
@@ -74,7 +74,7 @@ const main: AppRouteModule = {
{
path: 'town-yield',
name: 'TownYield',
- component: () => import('/@/views/base/ranking-list/index1.vue'),
+ component: () => import('/@/views/base/crop-yields/town-yields/index.vue'),
meta: {
title: '城镇产量',
},
@@ -82,7 +82,7 @@ const main: AppRouteModule = {
{
path: 'basics-yield',
name: 'BasicsYield',
- component: () => import('/@/views/base/ranking-list/index1.vue'),
+ component: () => import('/@/views/base/crop-yields/base-yields/index.vue'),
meta: {
title: '基地产量',
},
@@ -106,25 +106,25 @@ const main: AppRouteModule = {
},
},
{
- path: 'industry-industry',
- name: 'IndustryIndustry',
- component: () => import('/@/views/base/base-data/index.vue'),
+ path: 'estate-industry',
+ name: 'EstateIndustry',
+ component: () => import('/@/views/base/estate/shrimp-industries/index.vue'),
meta: {
title: '稻虾产业',
},
},
{
- path: 'basics-flow',
- name: 'BasicsFlow',
- component: () => import('/@/views/base/base-data/index.vue'),
+ path: 'estate-flows',
+ name: 'EstateFlows',
+ component: () => import('/@/views/base/estate/shrimp-flows/index.vue'),
meta: {
title: '稻虾流向',
},
},
{
- path: 'basics-material',
- name: 'BasicsMaterial',
- component: () => import('/@/views/base/base-data/index.vue'),
+ path: 'estate-materiels',
+ name: 'EstateMateriels',
+ component: () => import('/@/views/base/estate/materiels/index.vue'),
meta: {
title: '大宗物资',
},
diff --git a/src/settings/componentSetting.ts b/src/settings/componentSetting.ts
index 2cf29e5c..9c87bdc6 100644
--- a/src/settings/componentSetting.ts
+++ b/src/settings/componentSetting.ts
@@ -11,16 +11,17 @@ export default {
// The field name of the current page passed to the background
pageField: 'page',
// The number field name of each page displayed in the background
- sizeField: 'pageSize',
+ sizeField: 'per_page',
// Field name of the form data returned by the interface
listField: 'items',
// Total number of tables returned by the interface field name
totalField: 'total',
},
// Number of pages that can be selected
- pageSizeOptions: ['10', '50', '80', '100'],
+ // pageSizeOptions: ['10', '50', '80', '100'],
+ pageSizeOptions: ['20'],
// Default display quantity on one page
- defaultPageSize: 10,
+ defaultPageSize: 20,
// Default Size
defaultSize: 'middle',
// Custom general sort function
diff --git a/src/utils/http/axios/index.ts b/src/utils/http/axios/index.ts
index e7481903..b22131a0 100644
--- a/src/utils/http/axios/index.ts
+++ b/src/utils/http/axios/index.ts
@@ -49,12 +49,15 @@ const transform: AxiosTransform = {
throw new Error(t('sys.api.apiRequestFailed'))
}
// 这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式
- const { code, data: result, message } = data
-
+ const { code, data: result, message, meta } = data
+ const resDate = {
+ items: result,
+ total: meta?.total ?? null,
+ }
// 这里逻辑可以根据项目进行修改
const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.SUCCESS
if (hasSuccess) {
- return result
+ return resDate
}
// 在此处根据自己项目的实际情况对不同的code执行不同的操作
diff --git a/src/utils/index.ts b/src/utils/index.ts
index f7ee8394..9a743a9c 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -100,3 +100,36 @@ export function formatDataByObject(obj) {
})
return arr
}
+
+//递归生成树形结构
+export function getTreeData(
+ data: any,
+ pid: any,
+ pidName = 'parentId',
+ idName = 'id',
+ childrenName = 'children',
+ key = 'key',
+ isNull = true,
+) {
+ let arr = []
+
+ for (let i = 0; i < data.length; i++) {
+ if (data[i][pidName] == pid) {
+ data[i][key] = data[i][idName]
+ data[i]['disabled'] = data[i].is_end == 1 ? false : true
+ data[i][childrenName] = getTreeData(
+ data,
+ data[i][idName],
+ pidName,
+ idName,
+ childrenName,
+ key,
+ isNull,
+ )
+ if (isNull && data[i][childrenName].length == 0) delete data[i][childrenName]
+ arr.push(data[i])
+ }
+ }
+
+ return arr
+}
diff --git a/src/views/base/base-data/base.data.ts b/src/views/base/base-data/base.data.ts
index ba6fc111..66a10959 100644
--- a/src/views/base/base-data/base.data.ts
+++ b/src/views/base/base-data/base.data.ts
@@ -93,7 +93,7 @@ export const accountFormSchema: FormSchema[] = [
componentProps: {
api: async () => {
const res = await getTownAgriculturalBasic({ type: 2 })
- return res
+ return res.items
},
labelField: 'name',
valueField: 'id',
@@ -107,7 +107,7 @@ export const accountFormSchema: FormSchema[] = [
componentProps: {
api: async () => {
const res = await getcrops({ type: 'all', crop_type: 1 })
- return res.map((e) => {
+ return res.items.map((e) => {
return {
...e,
disabled: e.is_end === 0,
diff --git a/src/views/base/city-data/index.vue b/src/views/base/city-data/index.vue
index c69de45e..ed8b35ff 100644
--- a/src/views/base/city-data/index.vue
+++ b/src/views/base/city-data/index.vue
@@ -101,7 +101,7 @@
}
onMounted(async () => {
let res = await getCitydataStatistics()
- CityDate.value = res
+ CityDate.value = res.items
})
return {
CityDate,
diff --git a/src/views/base/crop-yields/base-yields/BaseDrawer.vue b/src/views/base/crop-yields/base-yields/BaseDrawer.vue
new file mode 100644
index 00000000..c4be36d3
--- /dev/null
+++ b/src/views/base/crop-yields/base-yields/BaseDrawer.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/crop-yields/base-yields/base.data.ts b/src/views/base/crop-yields/base-yields/base.data.ts
new file mode 100644
index 00000000..fc7da360
--- /dev/null
+++ b/src/views/base/crop-yields/base-yields/base.data.ts
@@ -0,0 +1,175 @@
+import { BasicColumn } from '/@/components/Table'
+import { FormSchema } from '/@/components/Table'
+import { getTownAgriculturalBasic } from '/@/api/sys/user'
+export const columns: BasicColumn[] = [
+ {
+ title: '基地名称',
+ dataIndex: 'base_name',
+ },
+ {
+ title: '农作物名称',
+ dataIndex: 'crop_name',
+ },
+ {
+ title: '年份',
+ dataIndex: 'time_year',
+ customRender: ({ text }) => {
+ return text + '年'
+ },
+ },
+ {
+ title: '季度',
+ dataIndex: 'quarter',
+ },
+ {
+ title: '产量',
+ dataIndex: 'yield',
+ },
+ {
+ title: '产值',
+ dataIndex: 'output',
+ },
+ {
+ title: '耕种面积',
+ dataIndex: 'cultivated',
+ },
+ {
+ width: 180,
+ title: '操作',
+ dataIndex: 'action',
+ align: 'center',
+ fixed: undefined,
+ },
+]
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ field: 'year',
+ label: '年份',
+ component: 'DatePicker',
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ 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 },
+ // },
+ // {
+ // field: 'crop',
+ // label: '农作物',
+ // component: 'ApiSelect',
+ // componentProps: {
+ // api: async () => {
+ // const res = await getcrops({ type: 'all', crop_type: 2 })
+ // return res.filter((e) => e.is_end == 1)
+ // },
+ // labelField: 'name',
+ // valueField: 'id',
+ // },
+ // colProps: { span: 6 },
+ // },
+]
+
+export const accountFormSchema: FormSchema[] = [
+ {
+ field: 'id',
+ label: 'ID',
+ required: false,
+ dynamicDisabled: true,
+ component: 'Input',
+ ifShow: ({ values }) => {
+ return !!values.id
+ },
+ },
+ {
+ field: 'time_year',
+ label: '年份',
+ component: 'DatePicker',
+ required: true,
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ },
+ {
+ field: 'quarter',
+ label: '季度',
+ component: 'Select',
+ required: true,
+ componentProps: {
+ options: [
+ { label: '第一季度', value: '1' },
+ { label: '第二季度', value: '2' },
+ { label: '第三季度', value: '3' },
+ { label: '第四季度', value: '4' },
+ ],
+ },
+ },
+
+ {
+ field: 'base_id',
+ label: '区域',
+ component: 'ApiSelect',
+ required: true,
+ componentProps: {
+ api: async () => {
+ const res = await getTownAgriculturalBasic({ type: 1, page: 1, per_page: 99999 })
+ return res.items
+ },
+ labelField: 'name',
+ valueField: 'id',
+ },
+ },
+ {
+ field: 'yield',
+ label: '产量',
+ required: true,
+ component: 'InputNumber',
+ },
+ {
+ field: 'output',
+ label: '产值',
+ required: true,
+ component: 'InputNumber',
+ },
+ // {
+ // field: 'crop_id',
+ // label: '农作物',
+ // component: 'TreeSelect',
+ // required: true,
+ // componentProps: {
+ // api: async () => {
+ // const res = await getcrops({ type: 'all', crop_type: 2 })
+ // return res.filter((e) => e.is_end == 1)
+ // },
+ // labelField: 'name',
+ // valueField: 'id',
+ // },
+ // },
+ {
+ label: '农作物',
+ field: 'crop_id',
+ slot: 'crop',
+ component: 'TreeSelect',
+ required: true,
+ },
+ {
+ field: 'cultivated',
+ label: '耕种面积',
+ required: true,
+ component: 'InputNumber',
+ },
+]
diff --git a/src/views/base/crop-yields/base-yields/index.vue b/src/views/base/crop-yields/base-yields/index.vue
new file mode 100644
index 00000000..3847a103
--- /dev/null
+++ b/src/views/base/crop-yields/base-yields/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/crop-yields/town-yields/TownDrawer.vue b/src/views/base/crop-yields/town-yields/TownDrawer.vue
new file mode 100644
index 00000000..bc1f63d5
--- /dev/null
+++ b/src/views/base/crop-yields/town-yields/TownDrawer.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/crop-yields/town-yields/index.vue b/src/views/base/crop-yields/town-yields/index.vue
new file mode 100644
index 00000000..917aba78
--- /dev/null
+++ b/src/views/base/crop-yields/town-yields/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/crop-yields/town-yields/town.data.ts b/src/views/base/crop-yields/town-yields/town.data.ts
new file mode 100644
index 00000000..7a7022fb
--- /dev/null
+++ b/src/views/base/crop-yields/town-yields/town.data.ts
@@ -0,0 +1,175 @@
+import { BasicColumn } from '/@/components/Table'
+import { FormSchema } from '/@/components/Table'
+import { getTownAgriculturalBasic } from '/@/api/sys/user'
+export const columns: BasicColumn[] = [
+ {
+ title: '基地名称',
+ dataIndex: 'base_name',
+ },
+ {
+ title: '农作物名称',
+ dataIndex: 'crop_name',
+ },
+ {
+ title: '年份',
+ dataIndex: 'time_year',
+ customRender: ({ text }) => {
+ return text + '年'
+ },
+ },
+ {
+ title: '季度',
+ dataIndex: 'quarter',
+ },
+ {
+ title: '产量',
+ dataIndex: 'yield',
+ },
+ {
+ title: '产值',
+ dataIndex: 'output',
+ },
+ {
+ title: '耕种面积',
+ dataIndex: 'cultivated',
+ },
+ {
+ width: 180,
+ title: '操作',
+ dataIndex: 'action',
+ align: 'center',
+ fixed: undefined,
+ },
+]
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ field: 'year',
+ label: '年份',
+ component: 'DatePicker',
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ 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 },
+ // },
+ // {
+ // field: 'crop',
+ // label: '农作物',
+ // component: 'ApiSelect',
+ // componentProps: {
+ // api: async () => {
+ // const res = await getcrops({ type: 'all', crop_type: 2 })
+ // return res.filter((e) => e.is_end == 1)
+ // },
+ // labelField: 'name',
+ // valueField: 'id',
+ // },
+ // colProps: { span: 6 },
+ // },
+]
+
+export const accountFormSchema: FormSchema[] = [
+ {
+ field: 'id',
+ label: 'ID',
+ required: false,
+ dynamicDisabled: true,
+ component: 'Input',
+ ifShow: ({ values }) => {
+ return !!values.id
+ },
+ },
+ {
+ field: 'time_year',
+ label: '年份',
+ component: 'DatePicker',
+ required: true,
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ },
+ {
+ field: 'quarter',
+ label: '季度',
+ component: 'Select',
+ required: true,
+ componentProps: {
+ options: [
+ { label: '第一季度', value: '1' },
+ { label: '第二季度', value: '2' },
+ { label: '第三季度', value: '3' },
+ { label: '第四季度', value: '4' },
+ ],
+ },
+ },
+
+ {
+ field: 'base_id',
+ label: '区域',
+ component: 'ApiSelect',
+ required: true,
+ componentProps: {
+ api: async () => {
+ const res = await getTownAgriculturalBasic({ type: 2, page: 1, per_page: 99999 })
+ return res.items
+ },
+ labelField: 'name',
+ valueField: 'id',
+ },
+ },
+ {
+ field: 'yield',
+ label: '产量',
+ required: true,
+ component: 'InputNumber',
+ },
+ {
+ field: 'output',
+ label: '产值',
+ required: true,
+ component: 'InputNumber',
+ },
+ // {
+ // field: 'crop_id',
+ // label: '农作物',
+ // component: 'TreeSelect',
+ // required: true,
+ // componentProps: {
+ // api: async () => {
+ // const res = await getcrops({ type: 'all', crop_type: 2 })
+ // return res.filter((e) => e.is_end == 1)
+ // },
+ // labelField: 'name',
+ // valueField: 'id',
+ // },
+ // },
+ {
+ label: '农作物',
+ field: 'crop_id',
+ slot: 'crop',
+ component: 'TreeSelect',
+ required: true,
+ },
+ {
+ field: 'cultivated',
+ label: '耕种面积',
+ required: true,
+ component: 'InputNumber',
+ },
+]
diff --git a/src/views/base/crops/town-crops/TownDrawer.vue b/src/views/base/crops/town-crops/TownDrawer.vue
index 7a1f5735..4061b223 100644
--- a/src/views/base/crops/town-crops/TownDrawer.vue
+++ b/src/views/base/crops/town-crops/TownDrawer.vue
@@ -38,13 +38,13 @@
-
+ >
+
diff --git a/src/views/base/estate/materiels/index.vue b/src/views/base/estate/materiels/index.vue
new file mode 100644
index 00000000..da5205aa
--- /dev/null
+++ b/src/views/base/estate/materiels/index.vue
@@ -0,0 +1,84 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/estate/materiels/materiels.data.ts b/src/views/base/estate/materiels/materiels.data.ts
new file mode 100644
index 00000000..75a959ce
--- /dev/null
+++ b/src/views/base/estate/materiels/materiels.data.ts
@@ -0,0 +1,180 @@
+import { BasicColumn } from '/@/components/Table'
+import { FormSchema } from '/@/components/Table'
+import { Tag } from 'ant-design-vue'
+import { h } from 'vue'
+export const columns: BasicColumn[] = [
+ {
+ title: '名称',
+ dataIndex: 'name',
+ },
+ {
+ title: '年份',
+ dataIndex: 'year',
+ customRender: ({ text }) => {
+ return text + '年'
+ },
+ },
+ {
+ title: '季度',
+ dataIndex: 'quarter',
+ },
+ {
+ title: '类型',
+ dataIndex: 'type',
+ customRender: ({ record }) => {
+ const status = record.type
+ const list = [
+ {
+ value: 1,
+ color: 'green',
+ label: '饲料',
+ },
+ {
+ value: 2,
+ color: 'pink',
+ label: '肥料',
+ },
+ ]
+ const item = list.find((e) => e.value === status)
+ const color = item?.color ?? 'red'
+ const text = item?.label ?? status
+ return h(Tag, { color: color }, () => text)
+ },
+ },
+ {
+ title: '最低价',
+ dataIndex: 'lowest_price',
+ },
+ {
+ title: '最高价',
+ dataIndex: 'highest_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: 'DatePicker',
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ 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 },
+ },
+ {
+ field: 'type',
+ label: '类型',
+ component: 'Select',
+ componentProps: {
+ options: [
+ { label: '饲料', value: '1' },
+ { label: '肥料', value: '2' },
+ ],
+ },
+ colProps: { span: 6 },
+ },
+ {
+ field: 'name',
+ label: '名称',
+ required: false,
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+]
+
+export const accountFormSchema: FormSchema[] = [
+ {
+ field: 'id',
+ label: 'ID',
+ required: false,
+ dynamicDisabled: true,
+ component: 'Input',
+ ifShow: ({ values }) => {
+ return !!values.id
+ },
+ },
+ {
+ field: 'name',
+ label: '名称',
+ required: true,
+ component: 'Input',
+ },
+ {
+ field: 'year',
+ label: '年份',
+ component: 'DatePicker',
+ required: true,
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ },
+ {
+ field: 'quarter',
+ label: '季度',
+ component: 'Select',
+ required: true,
+ componentProps: {
+ options: [
+ { label: '第一季度', value: '1' },
+ { label: '第二季度', value: '2' },
+ { label: '第三季度', value: '3' },
+ { label: '第四季度', value: '4' },
+ ],
+ },
+ },
+ {
+ field: 'type',
+ label: '类型',
+ component: 'Select',
+ required: true,
+ componentProps: {
+ options: [
+ { label: '饲料', value: 1 },
+ { label: '肥料', value: 2 },
+ ],
+ },
+ },
+ {
+ field: 'lowest_price',
+ label: '最低价',
+ required: true,
+ component: 'InputNumber',
+ },
+ {
+ field: 'highest_price',
+ label: '最高价',
+ required: true,
+ component: 'InputNumber',
+ },
+]
diff --git a/src/views/base/estate/shrim-price/PriceDrawer.vue b/src/views/base/estate/shrim-price/PriceDrawer.vue
index 0359aeac..dc3403f0 100644
--- a/src/views/base/estate/shrim-price/PriceDrawer.vue
+++ b/src/views/base/estate/shrim-price/PriceDrawer.vue
@@ -11,15 +11,15 @@
+
diff --git a/src/views/base/estate/shrim-price/index.vue b/src/views/base/estate/shrim-price/index.vue
index 9351dc21..31c53bda 100644
--- a/src/views/base/estate/shrim-price/index.vue
+++ b/src/views/base/estate/shrim-price/index.vue
@@ -2,7 +2,7 @@
- 新增设备
+ 新增
@@ -28,9 +28,9 @@
+
diff --git a/src/views/base/estate/shrimp-flows/index.vue b/src/views/base/estate/shrimp-flows/index.vue
new file mode 100644
index 00000000..81f043a1
--- /dev/null
+++ b/src/views/base/estate/shrimp-flows/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/estate/shrimp-flows/shrimp-flows.ts b/src/views/base/estate/shrimp-flows/shrimp-flows.ts
new file mode 100644
index 00000000..c2722729
--- /dev/null
+++ b/src/views/base/estate/shrimp-flows/shrimp-flows.ts
@@ -0,0 +1,114 @@
+import { BasicColumn } from '/@/components/Table'
+import { FormSchema } from '/@/components/Table'
+export const columns: BasicColumn[] = [
+ {
+ title: '年份',
+ dataIndex: 'year',
+ customRender: ({ text }) => {
+ return text + '年'
+ },
+ },
+ {
+ title: '季度',
+ dataIndex: 'quarter',
+ },
+ {
+ title: '地区',
+ dataIndex: 'area',
+ },
+ {
+ title: '销量',
+ dataIndex: 'sales',
+ },
+ {
+ 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: 'DatePicker',
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ 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: 'year',
+ label: '年份',
+ component: 'DatePicker',
+ required: true,
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ },
+ {
+ field: 'quarter',
+ label: '季度',
+ component: 'Select',
+ required: true,
+ componentProps: {
+ options: [
+ { label: '第一季度', value: '1' },
+ { label: '第二季度', value: '2' },
+ { label: '第三季度', value: '3' },
+ { label: '第四季度', value: '4' },
+ ],
+ },
+ },
+ {
+ field: 'area',
+ label: '地区',
+ required: true,
+ component: 'Input',
+ },
+ {
+ field: 'sales',
+ label: '销量',
+ required: true,
+ component: 'InputNumber',
+ },
+]
diff --git a/src/views/base/estate/shrimp-industries/IndustriesDrawer.vue b/src/views/base/estate/shrimp-industries/IndustriesDrawer.vue
new file mode 100644
index 00000000..3f15a34e
--- /dev/null
+++ b/src/views/base/estate/shrimp-industries/IndustriesDrawer.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
diff --git a/src/views/base/estate/shrimp-industries/index.vue b/src/views/base/estate/shrimp-industries/index.vue
new file mode 100644
index 00000000..d36dd1c2
--- /dev/null
+++ b/src/views/base/estate/shrimp-industries/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/base/estate/shrimp-industries/shrimp-industries.ts b/src/views/base/estate/shrimp-industries/shrimp-industries.ts
new file mode 100644
index 00000000..062a4407
--- /dev/null
+++ b/src/views/base/estate/shrimp-industries/shrimp-industries.ts
@@ -0,0 +1,124 @@
+import { BasicColumn } from '/@/components/Table'
+import { FormSchema } from '/@/components/Table'
+export const columns: BasicColumn[] = [
+ {
+ title: '年份',
+ dataIndex: 'year',
+ customRender: ({ text }) => {
+ return text + '年'
+ },
+ },
+ {
+ title: '季度',
+ dataIndex: 'quarter',
+ },
+ {
+ title: '面积',
+ dataIndex: 'area',
+ },
+ {
+ title: '产量',
+ dataIndex: 'product_output',
+ },
+ {
+ title: '产值',
+ dataIndex: 'product_value',
+ },
+ {
+ 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: 'DatePicker',
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ 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: 'year',
+ label: '年份',
+ component: 'DatePicker',
+ required: true,
+ componentProps: {
+ picker: 'year',
+ mode: 'year',
+ },
+ },
+ {
+ field: 'quarter',
+ label: '季度',
+ component: 'Select',
+ required: true,
+ componentProps: {
+ options: [
+ { label: '第一季度', value: '1' },
+ { label: '第二季度', value: '2' },
+ { label: '第三季度', value: '3' },
+ { label: '第四季度', value: '4' },
+ ],
+ },
+ },
+ {
+ field: 'area',
+ label: '面积',
+ required: true,
+ component: 'InputNumber',
+ },
+ {
+ field: 'product_output',
+ label: '产量',
+ required: true,
+ component: 'InputNumber',
+ },
+ {
+ field: 'product_value',
+ label: '产值',
+ required: true,
+ component: 'InputNumber',
+ },
+]
diff --git a/src/views/base/ranking-list/index.vue b/src/views/base/ranking-list/index.vue
index f570cddc..cac8e06c 100644
--- a/src/views/base/ranking-list/index.vue
+++ b/src/views/base/ranking-list/index.vue
@@ -29,7 +29,7 @@