Explorar el Código

Merge branch 'master' of http://gogs.gisvg.com/YDM/museums-ui

wwj hace 2 meses
padre
commit
0bb09e6b4d

+ 1 - 1
.env

@@ -8,7 +8,7 @@ VITE_PORT=80
 VITE_OPEN=true
 
 # 租户开关
-VITE_APP_TENANT_ENABLE=true
+VITE_APP_TENANT_ENABLE=false
 
 # 验证码的开关
 VITE_APP_CAPTCHA_ENABLE=true

+ 14 - 11
src/views/Home/Index.vue

@@ -55,7 +55,7 @@
         </el-col>
       </el-row>
     </el-skeleton>
-  
+
     <!-- 本年标本出入回库情况new -->
     <el-skeleton :loading="loading" animated>
       <el-row>
@@ -206,13 +206,15 @@ onMounted(async () => {
   fossilCount.value = samples['化石'];
   meteoriteCount.value = samples['陨石'];
   rockOreCount.value = samples['岩石矿石'];
-  
+
   const month = `${new Date().getMonth() + 1}月`
-  console.log('month', month);
+  const monthNum = new Date().getMonth()
+  console.log('monthNum', monthNum);
   const enterSpecimen = ref();
   const outSpecimen = ref();
   const returnSpecimen = ref();
   const year = new Date().getFullYear()
+
   //本月出、入、回库数
   enterSpecimen.value = await WorkbenchApi.getEnterSpecimenList(year);
   outSpecimen.value = await WorkbenchApi.getOutSpecimenList(year);
@@ -220,14 +222,15 @@ onMounted(async () => {
   const enter = enterSpecimen.value.data
   const out = outSpecimen.value.data
   const return1 = returnSpecimen.value.data
-  enterNumber.value = enter[enter.length - 1].number;
-  outNumber.value = out[out.length - 1].number;
-  returnNumber.value = return1[return1.length - 1].number;
-  enterNumber1.value = enter[enter.length - 2].number;
-  outNumber1.value = out[out.length - 2].number;
+  enterNumber.value = enter[monthNum].number;
+  outNumber.value = out[monthNum].number;
+  returnNumber.value = return1[monthNum].number;
+  enterNumber1.value = enter[monthNum-1].number;
+  outNumber1.value = out[monthNum-1].number;
   // TODO 这里
-  console.log(return1)
-  returnNumber1.value = return1[return1.length - 2].number;
+  console.log('return1',return1)
+
+  returnNumber1.value = return1[monthNum-1].number;
   enterRatio.value = (enterNumber.value - enterNumber1.value) / enterNumber.value * 100;
   outRatio.value = (outNumber.value - outNumber1.value) / outNumber.value * 100;
   returnRatio.value = (returnNumber.value - returnNumber1.value) / returnNumber.value * 100;
@@ -285,7 +288,7 @@ getAllApi()
 </script>
 <style scoped>
 .bg {
-  background-image: url("/@/asset/imgs/bg.jpg");
+  background-image: url("../asset/imgs/bg.jpg");
   background-repeat: no-repeat;
   background-attachment: fixed;
   background-size: cover;

+ 338 - 314
src/views/Home/echarts-data.ts

@@ -1,6 +1,7 @@
 import { EChartsOption } from 'echarts'
 //获取标本类型数
 import * as WorkbenchApi from '@/api/workbench'
+import { number } from 'vue-types';
 const { samples } = await WorkbenchApi.getSpecimenTypeList();
 
 const { t } = useI18n()
@@ -38,37 +39,34 @@ const enterRatio1 = ref(0);
 const outRatio1 = ref(0);
 const returnRatio1 = ref(0);
 let enterSum = 0;
-const year = new Date().getFullYear()
+const currentYear = new Date().getFullYear()
+const monthNum = new Date().getMonth()
+
+
 // 使用 await 获取数据
 workbenchList.value = await WorkbenchApi.getSpecimenYearList();
 sourceList.value = await WorkbenchApi.getSpecimenSourceList();
 //获取出库数
-enterSpecimen.value = await WorkbenchApi.getEnterSpecimenList(year);
-outSpecimen.value = await WorkbenchApi.getOutSpecimenList(year);
-returnSpecimen.value = await WorkbenchApi.getReturnSpecimenList(year);
+enterSpecimen.value = await WorkbenchApi.getEnterSpecimenList(currentYear);
+outSpecimen.value = await WorkbenchApi.getOutSpecimenList(currentYear);
+returnSpecimen.value = await WorkbenchApi.getReturnSpecimenList(currentYear);
 
 //获取各类标本数据
 mineralCount.value = samples['矿物'];
-  fossilCount.value = samples['化石'];
-  meteoriteCount.value = samples['陨石'];
-  rockOreCount.value = samples['岩石矿石'];
+fossilCount.value = samples['化石'];
+meteoriteCount.value = samples['陨石'];
+rockOreCount.value = samples['岩石矿石'];
 
 const years = workbenchList.value.data;
 const sourcs = sourceList.value;
 const enter = enterSpecimen.value.data
 const out = outSpecimen.value.data
 const return1 = returnSpecimen.value.data
+// console.log( sourceList.value,'sourcs');
+
 
-// 进一步处理数据,例如渲染到页面
- const year2 = years.map(years => years.year);
- const inStockCount = years.map(years => years.inStockCount);
- const outStockCount = years.map(years => years.outStockCount);
- const returnCount = years.map(years => years.returnCount);
 //  console.log('sourcs',sourceList.value);
- const year1 = sourcs.map(sourcs => sourcs.year);
- const purchase = sourcs.map(sourcs => sourcs.other);
- const gather = sourcs.map(sourcs => sourcs.gather);
- const donate = sourcs.map(sourcs => sourcs.donate);
+
 //统计本年标本入库数量(按月份)
  const enterMonth = enter.map(enter => enter.month);
  const enterNum = enter.map(enter => enter.number);
@@ -84,14 +82,14 @@ const returnMonth = return1.map(return1 => return1.month);
 const returnNum = return1.map(return1 => return1.number);
 
 //本/上月出、入、回库数
-enterNumber.value = enter[enter.length - 1].number;
-outNumber.value = out[out.length - 1].number;
-returnNumber.value = return1[return1.length - 1].number;
-enterNumber1.value = enter[enter.length - 2].number;
-outNumber1.value = out[out.length - 2].number;
+enterNumber.value = enter[monthNum].number;
+outNumber.value = out[monthNum].number;
+returnNumber.value = return1[monthNum].number;
+enterNumber1.value = enter[monthNum-1].number;
+outNumber1.value = out[monthNum-1].number;
 console.log(out)
 // TODO 这里
-// returnNumber1.value = return1[return1.length - 2].number;
+returnNumber1.value = return1[monthNum-1].number;
 
 //月环比
 enterRatio.value = (enterNumber.value-enterNumber1.value)/enterNumber.value*100;
@@ -101,6 +99,27 @@ enterRatio1.value = 100-enterRatio.value;
 outRatio1.value = 100-outRatio.value;
 returnRatio1.value = 100-returnRatio.value;
 
+// 筛选出最近六年的数据
+const sourcsData = sourcs.filter(item => {
+  return parseInt(item.year) >= currentYear - 5;
+});
+
+// 筛选出最近六年的数据
+const yearsData = years.filter(item => {
+  return parseInt(item.year) >= currentYear - 5;
+});
+// 打印筛选后的数据
+// console.log(filteredData,'filteredData');
+const year1 = sourcsData.map(sourcsData => sourcsData.year);
+const purchase = sourcsData.map(sourcsData => sourcsData.purchase);
+const gather = sourcsData.map(filteredData => sourcsData.gather);
+const donate = sourcsData.map(sourcsData => sourcsData.donate);
+
+// 进一步处理数据,例如渲染到页面
+const year2 = yearsData.map(yearsData => yearsData.year);
+const inStockCount = yearsData.map(yearsData => yearsData.inStockCount);
+const outStockCount = yearsData.map(yearsData => yearsData.outStockCount);
+const returnCount = yearsData.map(yearsData => yearsData.returnCount);
 export const lineOptions: EChartsOption = {
   title: {
     text: t('analysis.monthlySales'),
@@ -240,252 +259,190 @@ export const pieOptions: EChartsOption = {
 
 
 
-//历年标本来源增减统计
 export const originOptions: EChartsOption = {
-  backgroundColor: 'transparent', // 设置背景色为透明
-  legend: {
-    icon: "circle",
-    // top: "5%",
-    right: "5%",
-    textStyle: {
-      color: "#556677",
-    },
-  },
-  tooltip: {
-    trigger: "axis",
-    axisPointer: {
-      label: {
+    tooltip: {
+      trigger: 'axis',
+      axisPointer: {
         show: true,
-        backgroundColor: "#fff",
+        status: 'shadow',
+        z: -1,
+        shadowStyle: {
+          color: 'rgba(251, 169, 128, 0.1)',
+        },
+        type: 'shadow'
+      }
+    },
+    legend: {
+      icon: "circle",
+      top: "0%",
+      right: "5%",
+      textStyle: {
         color: "#556677",
-        borderColor: "rgba(0,0,0,0)",
-        shadowColor: "rgba(0,0,0,0)",
-        shadowOffsetY: 0,
-      },
-      lineStyle: {
-        width: 0,
       },
     },
-    backgroundColor: "#fff",
-    textStyle: {
-      color: "#5c6c7c",
+    grid: {
+      left: '3%',
+      right: '3%',
+      top: '12%',
+      bottom: '0%', // 减少底部边距,让 X 轴更靠近底部
+      containLabel: true
     },
-    padding: [10, 10],
-    extraCssText: "box-shadow: 1px 0 2px 0 rgba(163,163,163,0.5)",
-  },
-  grid: {
-    left: '3%',
-    right: '3%',
-    top: '12%',
-    bottom: '0%', // 减少底部边距,让 X 轴更靠近底部
-    containLabel: true
-  },
-  xAxis: [
-    {
-      type: "category",
-      data: year1,
-      axisLine: {
-        lineStyle: {
-          color: "#DCE2E8",
+    xAxis: [
+      {
+        position: 'bottom',
+        type: 'category',
+        axisLine: {
+          show: true,
+          lineStyle: {
+            color: '#ECF1F6'
+          }
         },
-      },
-      axisTick: {
-        show: false,
-      },
-
-      axisLabel: {
-        interval: 0,
-        textStyle: {
-          color: "#556677",
+        axisTick: {
+          show: false,
         },
-        // 默认x轴字体大小
-        fontSize: 12,
-        // margin:文字到x轴的距离
-        margin: 15,
-      },
-      axisPointer: {
-        label: {
-          padding: [0, 0, 10, 0],
-          margin: 15,
-          // 移入时的字体大小
+        axisLabel: {
+          show: true,
+          rotate: 0,
           fontSize: 12,
-          backgroundColor: {
-            type: "linear",
-            x: 0,
-            y: 0,
-            x2: 0,
-            y2: 1,
-            colorStops: [
-              {
-                offset: 0,
-                color: "#fff", // 0% 处的颜色
-              },
-              {
-                // offset: 0.9,
-                offset: 0.86,
-                /*
-0.86 = (文字 + 文字距下边线的距离)/(文字 + 文字距下边线的距离 + 下边线的宽度)
-                        
-                        */
-                color: "#fff", // 0% 处的颜色
-              },
-              {
-                offset: 0.86,
-                color: "#dcb86b", // 0% 处的颜色
-              },
-              {
-                offset: 1,
-                color: "#dcb86b", // 100% 处的颜色
-              },
-            ],
-            global: false, // 缺省为 false
+          color: 'rgba(0, 0, 0, 1)'
+        },
+        splitLine: {
+          show: true,
+          lineStyle: {
+            color: 'rgba(193, 207, 220, 1)',
+            width: 0,
+            type: 'dashed'
+          }
+        },
+        gridIndex: 0,
+        data: year1,
+      }
+    ],
+    yAxis: [
+      {
+        type: "value",
+        axisTick: {
+          show: false,
+        },
+        axisLine: {
+          show: true,
+          lineStyle: {
+            color: "#DCE2E8",
           },
         },
-      },
-      boundaryGap: false,
-    },
-  ],
-  yAxis: [
-    {
-      type: "value",
-      axisTick: {
-        show: false,
-      },
-      axisLine: {
-        show: true,
-        lineStyle: {
-          color: "#DCE2E8",
+        axisLabel: {
+          textStyle: {
+            color: "#556677",
+          },
         },
-      },
-      axisLabel: {
-        textStyle: {
-          color: "#556677",
+        splitLine: {
+          show: false,
         },
       },
-      splitLine: {
-        show: false,
-      },
-    },
-    {
-      type: "value",
-      position: "left",
-      axisTick: {
-        show: false,
-      },
-      axisLabel: {
-        textStyle: {
-          color: "#556677",
+      {
+        type: "value",
+        position: "right",
+        axisTick: {
+          show: false,
         },
-        formatter: "{value}",
-      },
-      axisLine: {
-        show: true,
-        lineStyle: {
-          color: "#DCE2E8",
+        axisLabel: {
+          textStyle: {
+            color: "#556677",
+          },
+          formatter: "{value}",
         },
-      },
-      splitLine: {
-        show: false,
-      },
-    },
-  ],
-  series: [
-
-    {
-      name: "采购",
-      type: "line",
-      data: purchase,
-      symbolSize: 1,
-      yAxisIndex: 1,
-      symbol: "circle",
-      label: {
-        normal: {
+        axisLine: {
           show: true,
-          position: "top",
-          textStyle: {
-            color: "rgba(219, 141, 73, 1)",
-            fontSize: 14,
-            fontFamily: 'DIN',
-            fontWeight: 'bold'
-          }
-        }
-      },
-      showSymbol: false,
-      lineStyle: {
-        width: 4,
-
-      },
-      itemStyle: {
-        normal: {
-          color:  "#fed776",
-          // borderColor: colorList[2],
+          lineStyle: {
+            color: "#DCE2E8",
+          },
+        },
+        splitLine: {
+          show: false,
         },
       },
-    },
-    {
-      name: "捐赠",
-      type: "line",
-      data: donate,
-      symbolSize: 1,
-      yAxisIndex: 1,
-      symbol: "circle",
-      label: {
-        normal: {
-          show: true,
-          position: "top",
-          textStyle: {
-            color: "rgba(219, 141, 73, 1)",
-            fontSize: 14,
-            fontFamily: 'DIN',
-            fontWeight: 'bold'
+    ],
+    series: [
+      {
+        name: '采购',
+        type: 'bar',
+        // stack: 'total',
+        data: purchase,
+        itemStyle: {
+          normal: {
+            // barBorderRadius: [30, 30, 0, 0],
+            // color: "rgba(249,209,110,.8)",rgba(92,123,217,1.00)
+            color: "#fecb70",
           }
-        }
-      },
-      // smooth: true,
-      showSymbol: false,
-      lineStyle: {
-        width: 4,
-      },
-      itemStyle: {
-        normal: {
-          color: '#95d6e6',
-          // borderColor: colorList[1],
         },
-      },
-    },
-    {
-      name: "采集",
-      type: "line",
-      data: gather,
-      symbolSize: 1,
-      yAxisIndex: 1,
-      label: {
-        normal: {
-          show: true,
-          position: "top",
-          textStyle: {
-            color: "rgba(219, 141, 73, 1)",
-            fontSize: 14,
-            fontFamily: 'DIN',
-            fontWeight: 'bold'
+        label: {
+          normal: {
+            show: true,
+            position: "top",
+            textStyle: {
+              color: "rgba(219, 141, 73, 1)",
+              fontSize: 13,
+              fontFamily: 'DIN',
+              fontWeight: 'bold'
+            }
+          }
+        },
+        barMaxWidth: '20%',
+      },
+      {
+        name: '捐赠',
+        type: 'bar',
+        // stack: 'total',
+        data: donate,
+        itemStyle: {
+          normal: {
+            // barBorderRadius: [30, 30, 0, 0],
+            // color: "rgba(251,169,128,.9)"
+            color: "#90cedd"
+          }
+        },
+        label: {
+          normal: {
+            show: true,
+            position: "top",
+            textStyle: {
+              color: "rgba(219, 141, 73, 1)",
+              fontSize: 13,
+              fontFamily: 'DIN',
+              fontWeight: 'bold'
+            }
+          }
+        },
+        barMaxWidth: '20%',
+      },
+      {
+        name: '采集',
+        type: 'bar',
+        // stack: 'total',
+        data: gather,
+        itemStyle: {
+          normal: {
+            // barBorderRadius: [30, 30, 0, 0],
+            // color: "rgba(222,184,135,0.9)"
+            color: "#22668a"
+          }
+        },
+        label: {
+          normal: {
+            show: true,
+            position: "top",
+            textStyle: {
+              color: "rgba(219, 141, 73, 1)",
+              fontSize: 13,
+              fontFamily: 'DIN',
+              fontWeight: 'bold'
+            }
           }
-        }
-      },
-      symbol: "circle",
-      // smooth: true,
-      showSymbol: false,
-      lineStyle: {
-        width: 4,
-      },
-      itemStyle: {
-        normal: {
-          color: '#22668a',
-          // borderColor: colorList[0],
         },
+      barMaxWidth: '20%',
       },
-    },
-  ],
-};
+    ]
+  };
 export const wordOptions = {
   series: [
     {
@@ -610,27 +567,38 @@ export const wordOptions = {
   ]
 }
 //本年标本数量统计
-export const mouthOptions: EChartsOption = {
-  tooltip: {
-    trigger: 'axis',
-    axisPointer: {
-      show: true,
-      status: 'shadow',
-      z: -1,
-      shadowStyle: {
-        color: 'rgba(251, 169, 128, 0.1)',
-      },
-      type: 'shadow'
-    }
-  },
+export const mouthOptions: EChartsOption =  {
+  backgroundColor: 'transparent', // 设置背景色为透明
   legend: {
     icon: "circle",
-    top: "0%",
+    // top: "5%",
     right: "5%",
     textStyle: {
       color: "#556677",
     },
   },
+  tooltip: {
+    trigger: "axis",
+    axisPointer: {
+      label: {
+        show: true,
+        backgroundColor: "#fff",
+        color: "#556677",
+        borderColor: "rgba(0,0,0,0)",
+        shadowColor: "rgba(0,0,0,0)",
+        shadowOffsetY: 0,
+      },
+      lineStyle: {
+        width: 0,
+      },
+    },
+    backgroundColor: "#fff",
+    textStyle: {
+      color: "#5c6c7c",
+    },
+    padding: [10, 10],
+    extraCssText: "box-shadow: 1px 0 2px 0 rgba(163,163,163,0.5)",
+  },
   grid: {
     left: '3%',
     right: '3%',
@@ -640,34 +608,68 @@ export const mouthOptions: EChartsOption = {
   },
   xAxis: [
     {
-      position: 'bottom',
-      type: 'category',
+      type: "category",
+      data: enterMonth,
       axisLine: {
-        show: true,
         lineStyle: {
-          color: '#ECF1F6'
-        }
+          color: "#DCE2E8",
+        },
       },
       axisTick: {
         show: false,
       },
+
       axisLabel: {
-        show: true,
-        rotate: 0,
+        interval: 0,
+        textStyle: {
+          color: "#556677",
+        },
+        // 默认x轴字体大小
         fontSize: 12,
-        color: 'rgba(0, 0, 0, 1)'
+        // margin:文字到x轴的距离
+        margin: 15,
       },
-      splitLine: {
-        show: true,
-        lineStyle: {
-          color: 'rgba(193, 207, 220, 1)',
-          width: 0,
-          type: 'dashed'
-        }
+      axisPointer: {
+        label: {
+          padding: [0, 0, 10, 0],
+          margin: 15,
+          // 移入时的字体大小
+          fontSize: 12,
+          backgroundColor: {
+            type: "linear",
+            x: 0,
+            y: 0,
+            x2: 0,
+            y2: 1,
+            colorStops: [
+              {
+                offset: 0,
+                color: "#fff", // 0% 处的颜色
+              },
+              {
+                // offset: 0.9,
+                offset: 0.86,
+                /*
+0.86 = (文字 + 文字距下边线的距离)/(文字 + 文字距下边线的距离 + 下边线的宽度)
+                        
+                        */
+                color: "#fff", // 0% 处的颜色
+              },
+              {
+                offset: 0.86,
+                color: "#dcb86b", // 0% 处的颜色
+              },
+              {
+                offset: 1,
+                color: "#dcb86b", // 100% 处的颜色
+              },
+            ],
+            global: false, // 缺省为 false
+          },
+        },
       },
-      gridIndex: 0,
-      data: enterMonth,
-    }
+      boundaryGap: false,
+    },
   ],
   yAxis: [
     {
@@ -692,7 +694,7 @@ export const mouthOptions: EChartsOption = {
     },
     {
       type: "value",
-      position: "right",
+      position: "left",
       axisTick: {
         show: false,
       },
@@ -714,17 +716,15 @@ export const mouthOptions: EChartsOption = {
     },
   ],
   series: [
+
     {
-      name: '出库',
-      type: 'bar',
+      name: "出库",
+      type: "line",
       data: outNum,
-      itemStyle: {
-        normal: {
-          // barBorderRadius: [30, 30, 0, 0],
-          // color: "rgba(249,209,110,.8)",rgba(92,123,217,1.00)
-          color: "#fecb70",
-        }
-      },
+      smooth: 0.4,
+      symbolSize: 1,
+      yAxisIndex: 1,
+      symbol: "circle",
       label: {
         normal: {
           show: true,
@@ -737,19 +737,26 @@ export const mouthOptions: EChartsOption = {
           }
         }
       },
-      barMaxWidth: '15%',
-    },
-    {
-      name: '入库',
-      type: 'bar',
-      data: enterNum,
+      showSymbol: false,
+      lineStyle: {
+        width: 4,
+
+      },
       itemStyle: {
         normal: {
-          // barBorderRadius: [30, 30, 0, 0],
-          // color: "rgba(251,169,128,.9)"
-          color: "#90cedd"
-        }
+          color:  "#fed776",
+          // borderColor: colorList[2],
+        },
       },
+    },
+    {
+      name: "入库",
+      type: "line",
+      data: enterNum,
+      smooth: 0.4,
+      symbolSize: 1,
+      yAxisIndex: 1,
+      symbol: "circle",
       label: {
         normal: {
           show: true,
@@ -762,19 +769,25 @@ export const mouthOptions: EChartsOption = {
           }
         }
       },
-      barMaxWidth: '15%',
-    },
-    {
-      name: '回库',
-      type: 'bar',
-      data: returnNum,
+      // smooth: true,
+      showSymbol: false,
+      lineStyle: {
+        width: 4,
+      },
       itemStyle: {
         normal: {
-          // barBorderRadius: [30, 30, 0, 0],
-          // color: "rgba(222,184,135,0.9)"
-          color: "#22668a"
-        }
+          color: '#95d6e6',
+          // borderColor: colorList[1],
+        },
       },
+    },
+    {
+      name: "回库",
+      type: "line",
+      data: returnNum,
+      smooth: 0.4,
+      symbolSize: 1,
+      yAxisIndex: 1,
       label: {
         normal: {
           show: true,
@@ -787,9 +800,20 @@ export const mouthOptions: EChartsOption = {
           }
         }
       },
-      barMaxWidth: '15%',
+      symbol: "circle",
+      // smooth: true,
+      showSymbol: false,
+      lineStyle: {
+        width: 4,
+      },
+      itemStyle: {
+        normal: {
+          color: '#22668a',
+          // borderColor: colorList[0],
+        },
+      },
     },
-  ]
+  ],
 };
 
 //历年标本数量统计
@@ -917,13 +941,13 @@ export const yearOptions: EChartsOption = {
           position: "top",
           textStyle: {
             color: "rgba(219, 141, 73, 1)",
-            fontSize: 14,
+            fontSize: 13,
             fontFamily: 'DIN',
             fontWeight: 'bold'
           }
         }
       },
-      barMaxWidth: '15%',
+      barMaxWidth: ' 35%',
     },
     {
       name: '入库',
@@ -945,13 +969,13 @@ export const yearOptions: EChartsOption = {
           position: "top",
           textStyle: {
             color: "rgba(219, 141, 73, 1)",
-            fontSize: 14,
+            fontSize: 13,
             fontFamily: 'DIN',
             fontWeight: 'bold'
           }
         }
       },
-      barMaxWidth: '15%',
+      barMaxWidth: '35%',
     },
     {
       name: '回库',
@@ -973,13 +997,13 @@ export const yearOptions: EChartsOption = {
           position: "top",
           textStyle: {
             color: "rgba(219, 141, 73, 1)",
-            fontSize: 14,
+            fontSize: 13,
             fontFamily: 'DIN',
             fontWeight: 'bold'
           }
         }
       },
-      barMaxWidth: '15%',
+      barMaxWidth: '35%',
     },
   ]
 };

+ 0 - 108
src/views/museums/specimeninfo/imageImportForm.vue

@@ -1,108 +0,0 @@
-<!--<template>-->
-<!--  <el-skeleton :loading="loading" animated>-->
-<!--  <Dialog v-model="dialogVisible" title="标本图片批量导入" width="500" >-->
-<!--    <el-upload-->
-<!--      ref="uploadRef"-->
-<!--      v-model:file-list="fileList"-->
-<!--      drag-->
-<!--      :action="importUrl + '?updateSupport=' + updateSupport"-->
-<!--      :on-success="submitFormSuccess"-->
-<!--      style="max-width:250px;max-height: 30vh;margin-left: 20px"-->
-<!--      :auto-upload="false"-->
-<!--      :disabled="formLoading"-->
-<!--      :limit="1"-->
-<!--      :on-error="submitFormError"-->
-<!--       :http-request="httpRequest"-->
-
-<!--    >-->
-<!--      <el-icon class="el-icon&#45;&#45;upload"><upload-filled /></el-icon>-->
-<!--      <div class="el-upload__text">-->
-<!--        <em>点击批量上传图片</em>-->
-<!--        <span>仅允许导入jpg、png、gif 格式文件。</span>-->
-<!--      </div>-->
-<!--      <template #tip>-->
-<!--        <div class="el-upload__tip">-->
-<!--          <el-checkbox v-model="updateSupport" />-->
-<!--          是否更新已经存在的标本图片-->
-<!--        </div>-->
-<!--      </template>-->
-<!--    </el-upload>-->
-<!--    <template #footer >-->
-<!--      <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>-->
-<!--      <el-button @click="dialogVisible = false">取 消</el-button>-->
-<!--    </template>-->
-<!--  </Dialog>-->
-<!--    </el-skeleton>-->
-<!--</template>-->
-
-<!--<script lang="ts" setup>-->
-<!--import {UploadFilled} from "@element-plus/icons-vue";-->
-
-<!--import { useUpload } from '@/components/UploadFile/src/useUpload'-->
-
-<!--import {ref} from "vue";-->
-<!--const importUrl =-->
-<!--  import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL + '/museums/specimen-info/import-specimen-images'-->
-<!--defineOptions({ name: 'imageImportForm' })-->
-<!--const dialogVisible = ref(false) // 弹窗的是否展示-->
-<!--const formLoading = ref(false) // 表单的加载中-->
-<!--const uploadRef = ref()-->
-<!--const message = useMessage() // 消息弹窗-->
-<!--const updateSupport = ref(0) // 是否更新已经存在的用户数据-->
-<!--const fileList = ref([]) // 文件列表-->
-<!--const loading = ref(true) // 列表的加载中-->
-<!--// const uploadHeaders = ref() // 上传 Header 头-->
-<!--/** 打开弹窗 */-->
-<!--const open = () => {-->
-<!--  dialogVisible.value = true-->
-<!--  updateSupport.value = 0-->
-<!--  fileList.value = []-->
-<!--  resetForm()-->
-<!--}-->
-<!--defineExpose({ open }) // 提供 open 方法,用于打开弹窗-->
-<!--const {  httpRequest } = useUpload()-->
-
-<!--console.log(httpRequest , importUrl)-->
-<!--/** 提交表单 */-->
-<!--const submitForm = async () => {-->
-<!--  if (fileList.value.length == 0) {-->
-<!--    message.error('请上传文件')-->
-<!--    return-->
-<!--  }-->
-
-<!--  formLoading.value = true-->
-<!--  uploadRef.value!.submit()-->
-<!--}-->
-
-<!--// /** 上传错误提示 */-->
-<!--// const submitFormError = (): void => {-->
-<!--//   message.error('上传失败,请您重新上传!')-->
-<!--//   formLoading.value = false-->
-<!--// }-->
-<!--// /** 图片上传成功 */-->
-<!--//-->
-<!--// const submitFormSuccess = (response: any) => {-->
-<!--//   console.log('33434234',response)-->
-<!--//   if (response.data.code !== 0) {-->
-<!--//     message.error(response.msg)-->
-<!--//     formLoading.value = false-->
-<!--//-->
-<!--//     return-->
-<!--//   }-->
-<!--//   formLoading.value = false-->
-<!--//   dialogVisible.value = false-->
-<!--//   console.log(2313)-->
-<!--//   // 发送操作成功的事件-->
-<!--//-->
-<!--// }-->
-
-<!--/** 重置表单 */-->
-<!--const resetForm = async (): Promise<void> => {-->
-<!--  // 重置上传状态和文件-->
-<!--  formLoading.value = false-->
-<!--  await nextTick()-->
-<!--  uploadRef.value?.clearFiles()-->
-<!--}-->
-
-
-<!--</script>-->

+ 0 - 56
src/views/museums/specimenoutbound/OutboundForm/OutboundForm.vue

@@ -1,56 +0,0 @@
-<!--<template>-->
-<!--  <Dialog :title="dialogTitle" v-model="dialogVisible">-->
-
-<!--    <template #footer>-->
-<!--      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>-->
-<!--      <el-button @click="dialogVisible = false">取 消</el-button>-->
-<!--    </template>-->
-<!--  </Dialog>-->
-<!--</template>-->
-
-<!--<script setup lang="ts">-->
-
-
-<!--const dialogVisible = ref(false) // 弹窗的是否展示-->
-<!--const formData = ref({-->
-<!--  id: undefined,-->
-<!--  infoId: undefined,-->
-<!--  chineseName: undefined,-->
-<!--  specimenNumber: undefined,-->
-<!--  applicantName: undefined,-->
-<!--  applicationDate: undefined,-->
-<!--  applicationUsage: undefined,-->
-<!--  attachments: undefined,-->
-<!--  status: undefined,-->
-<!--  remarks: undefined,-->
-<!--  processInstanceId: undefined,-->
-<!--  operator: undefined,-->
-<!--  outgoingTime: undefined,-->
-<!--  returner: undefined,-->
-<!--  receiver: undefined,-->
-<!--  returnDate: undefined,-->
-<!--  specimenCondition: undefined,-->
-<!--  sampleStatus: undefined-->
-<!--})-->
-
-
-
-<!--/** 打开弹窗 */-->
-<!--const open = async (type: string, id?: number) => {-->
-<!--  dialogVisible.value = true-->
-<!--  dialogTitle.value = t('action.' + type)-->
-<!--  formType.value = type-->
-<!--  resetForm()-->
-<!--  // 修改时,设置数据-->
-<!--  if (id) {-->
-<!--    formLoading.value = true-->
-<!--    try {-->
-<!--      formData.value = await SpecimenOutboundApi.getSpecimenOutbound(id)-->
-<!--    } finally {-->
-<!--      formLoading.value = false-->
-<!--    }-->
-<!--  }-->
-<!--}-->
-<!--defineExpose({ open }) // 提供 open 方法,用于打开弹窗-->
-
-<!--</script>-->

+ 0 - 493
src/views/system/text/index.vue

@@ -1,493 +0,0 @@
-<!--<template>-->
-
-
-
-<!--      <el-row :gutter="8" justify="space-between">-->
-<!--        <el-col :xl="16" :lg="16" :md="24" :sm="24" :xs="24">-->
-<!--          <div>-->
-<!--            <el-row>-->
-<!--              <el-col :xl="24" :lg="24" :md="24" :sm="24" :xs="24" style="margin-outside: 0px">-->
-<!--                <el-card style="margin-bottom: 5px">-->
-<!--                  <template #header>-->
-<!--                    <div class="card-header" style="text-align: center">-->
-<!--                      <h1 class="text1">标本基本信息</h1>-->
-<!--                    </div>-->
-<!--                  </template>-->
-<!--                  <el-descriptions-->
-<!--                    v-if="specimenData"-->
-<!--                    :column="2"-->
-<!--                    :size="size"-->
-<!--                    border-->
-<!--                  >-->
-<!--                    <el-descriptions-item label="序号:" label-align="right">{{ specimenData.id }}</el-descriptions-item>-->
-
-<!--                    <el-descriptions-item label="标本类型:" label-align="right" >{{ specimenTypeText }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="标本编号:" label-align="right">{{-->
-<!--                        specimenData.specimenNumber-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="资产号:" label-align="right">{{-->
-<!--                        specimenData.assetNumber-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="存放位置:" label-align="right">{{-->
-<!--                        specimenData.storageLocation-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="中文名称:" label-align="right">{{-->
-<!--                        specimenData.chineseName-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="英文名称:" label-align="right">{{-->
-<!--                        specimenData.englishName-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                  </el-descriptions>-->
-
-<!--                </el-card>-->
-
-<!--                <el-card style="margin-bottom: 5px">-->
-<!--                  <template #header>-->
-<!--                    <div class="card-header" style="text-align: center;">-->
-<!--                      <h1 class="text1">标本特征</h1>-->
-<!--                    </div>-->
-<!--                  </template>-->
-<!--                  <el-descriptions-->
-<!--                    v-if="specimenData"-->
-<!--                    :column="2"-->
-<!--                    :size="size"-->
-<!--                    border-->
-<!--                  >-->
-<!--                    <el-descriptions-item label="成分:"  label-align="right">{{-->
-<!--                        specimenData.composition-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="产地:" label-align="right">{{-->
-<!--                        specimenData.origin-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="时代:" label-align="right">{{ specimenData.era }}</el-descriptions-item>-->
-<!--                    <el-descriptions-item label="保存地层:" label-width="100px" label-align="right">{{-->
-<!--                        specimenData.discoveryTime-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="陨石类型:" label-width="100px" label-align="right">{{ specimenData.meteoriteType }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="国际命名:" label-width="100px" label-align="right">{{-->
-<!--                        specimenData.internationalName-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="重量(g):" label-width="100px" label-align="right">{{-->
-<!--                        specimenData.weight-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                  </el-descriptions>-->
-<!--                </el-card>-->
-<!--                <el-card style="margin-bottom: 5px">-->
-<!--                  <template #header>-->
-<!--                    <div class="card-header" style="text-align: center">-->
-<!--                      <h1 class="text1">标本保存与来源</h1>-->
-<!--                    </div>-->
-<!--                  </template>-->
-<!--                  <el-descriptions-->
-
-<!--                    v-if="specimenData"-->
-<!--                    :column="2"-->
-<!--                    :size="size"-->
-<!--                    border-->
-<!--                  >-->
-<!--                    <el-descriptions-item label="保存类型">{{ preservationTypeText }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="来源">{{ sourceText }}</el-descriptions-item>-->
-<!--                    <el-descriptions-item label="标本提供者">{{-->
-<!--                        specimenData.provider-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="发现时间">{{-->
-<!--                        specimenData.discoveryTime-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="降落时间">{{-->
-<!--                        specimenData.fallTime-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                  </el-descriptions>-->
-<!--                </el-card>-->
-<!--                <el-card style="margin-bottom: 5px">-->
-<!--                  <template #header>-->
-<!--                    <div class="card-header" style="text-align: center">-->
-<!--                      <h1 class="text1" style="">标本用途与状态</h1>-->
-<!--                    </div>-->
-<!--                  </template>-->
-<!--                  <el-descriptions-->
-
-<!--                    v-if="specimenData"-->
-<!--                    :column="2"-->
-<!--                    :size="size"-->
-<!--                    border-->
-<!--                  >-->
-<!--                    <el-descriptions-item label="入馆时间">{{-->
-<!--                        specimenData.acquisitionTime-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="描述">{{-->
-<!--                        specimenData.description-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="用途">{{-->
-<!--                        specimenData.purpose-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                    <el-descriptions-item label="备注">{{-->
-<!--                        specimenData.notes-->
-<!--                      }}-->
-<!--                    </el-descriptions-item>-->
-<!--                  </el-descriptions>-->
-<!--                </el-card>-->
-<!--              </el-col>-->
-
-<!--            </el-row>-->
-
-<!--          </div>-->
-<!--        </el-col>-->
-<!--        <el-col :xl="8" :lg="8" :md="24" :sm="24" :xs="24" class="mb-8px">-->
-<!--          <el-card>-->
-<!--            <template #header>-->
-<!--              <div class="card-header" style="text-align: center">-->
-<!--                <h1>标本图片</h1>-->
-<!--              </div>-->
-<!--            </template>-->
-<!--            <el-col :xl="24" :lg="24" :md="24" :sm="24" :xs="24" class="mb-8px">-->
-<!--              <div class="demo-image__preview" v-if="specimenData ">-->
-<!--                <el-image-->
-<!--                  style=" align-items: center"-->
-<!--                  :src="url"-->
-<!--                  :zoom-rate="1.2"-->
-<!--                  :max-scale="7"-->
-<!--                  :min-scale="0.2"-->
-<!--                  :preview-src-list="srcList"-->
-<!--                  :initial-index="4"-->
-<!--                  fit="cover"-->
-<!--                />-->
-<!--              </div>-->
-
-<!--                            <div>-->
-<!--                              <el-space style="margin-top: 10px">-->
-<!--                                <div class="demo-image__preview">-->
-<!--                                  <el-image-->
-<!--                                    style="width: 50px; height: 40px"-->
-<!--                                    :src="url"-->
-<!--                                    :zoom-rate="1.2"-->
-<!--                                    :max-scale="7"-->
-<!--                                    :min-scale="0.2"-->
-<!--                                    :preview-src-list="srcList"-->
-<!--                                    :initial-index="4"-->
-<!--                                    fit="cover"-->
-<!--                                  />-->
-<!--                                </div>-->
-<!--                                <div class="demo-image__preview">-->
-<!--                                  <el-image-->
-<!--                                    style="width: 50px; height: 40px"-->
-<!--                                    :src="url"-->
-<!--                                    :zoom-rate="1.2"-->
-<!--                                    :max-scale="7"-->
-<!--                                    :min-scale="0.2"-->
-<!--                                    :preview-src-list="srcList"-->
-<!--                                    :initial-index="4"-->
-<!--                                    fit="cover"-->
-<!--                                  />-->
-<!--                                </div>-->
-<!--                                <div class="demo-image__preview">-->
-<!--                                  <el-image-->
-<!--                                    style="width: 50px; height: 40px"-->
-<!--                                    :src="url"-->
-<!--                                    :zoom-rate="1.2"-->
-<!--                                    :max-scale="7"-->
-<!--                                    :min-scale="0.2"-->
-<!--                                    :preview-src-list="srcList"-->
-<!--                                    :initial-index="4"-->
-<!--                                    fit="cover"-->
-<!--                                  />-->
-<!--                                </div>-->
-<!--                                <div class="demo-image__preview">-->
-<!--                                  <el-image-->
-<!--                                    style="width: 50px; height: 40px"-->
-<!--                                    :src="url"-->
-<!--                                    :zoom-rate="1.2"-->
-<!--                                    :max-scale="7"-->
-<!--                                    :min-scale="0.2"-->
-<!--                                    :preview-src-list="srcList"-->
-<!--                                    :initial-index="4"-->
-<!--                                    fit="cover"-->
-<!--                                  />-->
-<!--                                </div>-->
-<!--                                <div class="demo-image__preview">-->
-<!--                                  <el-image-->
-<!--                                    style="width: 50px; height: 40px"-->
-<!--                                    :src="url"-->
-<!--                                    :zoom-rate="1.2"-->
-<!--                                    :max-scale="7"-->
-<!--                                    :min-scale="0.2"-->
-<!--                                    :preview-src-list="srcList"-->
-<!--                                    :initial-index="4"-->
-<!--                                    fit="cover"-->
-<!--                                  />-->
-<!--                                </div>-->
-<!--                                <div class="demo-image__preview">-->
-<!--                                  <el-image-->
-<!--                                    style="width: 50px; height: 40px"-->
-<!--                                    :src="url"-->
-<!--                                    :zoom-rate="1.2"-->
-<!--                                    :max-scale="7"-->
-<!--                                    :min-scale="0.2"-->
-<!--                                    :preview-src-list="srcList"-->
-<!--                                    :initial-index="4"-->
-<!--                                    fit="cover"-->
-<!--                                  />-->
-<!--                                </div>-->
-<!--                                <div class="demo-image__preview">-->
-<!--                                  <el-image-->
-<!--                                    style="width: 50px; height: 40px"-->
-<!--                                    :src="url"-->
-<!--                                    :zoom-rate="1.2"-->
-<!--                                    :max-scale="7"-->
-<!--                                    :min-scale="0.2"-->
-<!--                                    :preview-src-list="srcList"-->
-<!--                                    :initial-index="4"-->
-<!--                                    fit="cover"-->
-<!--                                  />-->
-<!--                                </div>-->
-<!--                              </el-space>-->
-<!--                            </div>-->
-<!--            </el-col>-->
-
-<!--          </el-card>-->
-<!--          <el-card style="margin-top: 10px">-->
-<!--            <template #header>-->
-<!--              <div class="card-header" >-->
-<!--                <h1 class="text1" style="margin-bottom: 10px">馆藏状态</h1>-->
-<!--                <span v-if="specimenRecord">{{collectionStatusText}}</span>-->
-<!--              </div>-->
-<!--            </template>-->
-<!--            <el-scrollbar height="600px">-->
-<!--            <el-timeline style="max-width: 600px;margin-left: 15px" >-->
-<!--              <el-timeline-item-->
-<!--                v-for="(item, index) in specimenRecord"-->
-<!--                :key="index"-->
-<!--                :timestamp="item.outgoingTime"-->
-<!--                placement="top">-->
-<!--                  <el-card>-->
-<!--                    <p>{{  }}</p>-->
-<!--                    <p>状态:{{  }}</p>-->
-<!--                    <p>申请人或单位:{{item.applicantName }}</p>-->
-<!--                    <p>用途:{{item.applicationUsage}}</p>-->
-<!--                    <p>审批员:{{item.approveUsers}}</p>-->
-<!--                    <p>审批时间:{{}}</p>-->
-<!--                    <p>出库员:{{ item.operator }}</p>-->
-<!--                  </el-card>-->
-<!--              </el-timeline-item>-->
-<!--              <el-timeline-item-->
-<!--                v-for="(item, index) in specimenRecord"-->
-<!--                :key="index"-->
-<!--                :timestamp="item.acquisitionTime"-->
-<!--                placement="top">-->
-<!--                <el-card>-->
-<!--                  <p>回库</p>-->
-<!--                  <p>退还人:{{ item.operator }}</p>-->
-<!--                  <p>点收人:{{item.applicationUsage}}</p>-->
-<!--                  <p>退还日期:{{item.approveUsers}}</p>-->
-<!--                  <p>标本情况:{{}}</p>-->
-<!--                </el-card>-->
-<!--              </el-timeline-item>-->
-
-<!--            </el-timeline>-->
-<!--            </el-scrollbar>-->
-<!--          </el-card>-->
-
-<!--        </el-col>-->
-<!--      </el-row>-->
-
-
-
-
-
-<!--</template>-->
-
-<!--<script setup lang="ts">-->
-
-<!--import {ref, onMounted, computed} from "vue";-->
-<!--import {useRouter} from 'vue-router';-->
-<!--import * as textApi from "@/api/system/text";-->
-<!--import {ElCol, ElImage} from 'element-plus';-->
-
-<!--const router = useRouter() // 路由-->
-<!--const {query} = useRoute() // 查询参数-->
-<!--import type {ComponentSize} from 'element-plus'-->
-<!--import {getRecord} from "@/api/system/text";-->
-
-<!--const size = ref<ComponentSize>('large')-->
-
-
-
-<!--const url = ref()-->
-<!--const srcList = ref([])-->
-
-
-
-
-<!--let specimenData = ref(null); // 初始化响应式数据-->
-<!--const fetchData = async () => {-->
-<!--  try {-->
-<!--    console.log(query.dataId)-->
-<!--    let res: any = await textApi.getDetail(query.dataId)-->
-<!--   console.log(res)-->
-<!--    specimenData.value = res-->
-<!--    console.log('tj',specimenData.value)-->
-<!--    srcList.value = specimenData.value.imagePath.split(',')-->
-<!--    url.value = srcList.value[0]-->
-<!--    console.log('tj',srcList.value)-->
-<!--  }  finally {-->
-<!--  }-->
-<!--  }-->
-<!--/**馆藏状态记录**/-->
-<!--let specimenRecord = ref(null);-->
-<!--const  fetchRecord = async () => {-->
-<!--  try {-->
-
-<!--    console.log(query.dataId)-->
-<!--    let res: any = await textApi.getRecord(query.dataId)-->
-<!--    console.log(res)-->
-<!--    specimenRecord.value = res-->
-
-<!--  } finally {-->
-<!--  }-->
-<!--}-->
-<!--// // 在组件加载时获取数据-->
-<!--onMounted(async () => {-->
-<!--  console.log(1)-->
-<!--  await fetchData()-->
-<!--   await fetchRecord()-->
-
-<!--})-->
-
-
-<!--/**标本类型**/-->
-<!--const specimenTypeText = computed(() => {-->
-<!--  if (specimenData.value === null) {-->
-<!--    return '';-->
-<!--  }-->
-<!--  switch (specimenData.value.specimenType) {-->
-<!--    case 0:-->
-<!--      return '矿物';-->
-<!--    case 1:-->
-<!--      return '岩石矿石';-->
-<!--    case 2:-->
-<!--      return '化石';-->
-<!--    case 3:-->
-<!--      return '陨石';-->
-<!--    default:-->
-<!--      return '';-->
-<!--  }-->
-<!--});-->
-<!--/**保存类型**/-->
-<!--const preservationTypeText = computed(() => {-->
-<!--  if (specimenData.value === null) {-->
-<!--    return '';-->
-<!--  }-->
-<!--  switch (specimenData.value.preservationType) {-->
-<!--    case 0:-->
-<!--      return '标本';-->
-<!--    case 1:-->
-<!--      return '光片';-->
-<!--    case 2:-->
-<!--      return '薄片模型';-->
-<!--    default:-->
-<!--      return '';-->
-<!--  }-->
-<!--});-->
-<!--/**来源**/-->
-<!--const collectionStatusText = computed(() => {-->
-<!--  if (specimenData.value === null) {-->
-<!--    return '';-->
-<!--  }-->
-<!--  switch (specimenData.value.collectionStatus) {-->
-<!--    case 0:-->
-<!--      return '在馆';-->
-<!--    case 1:-->
-<!--      return '借出';-->
-<!--    default:-->
-<!--      return '';-->
-<!--  }-->
-<!--});-->
-<!--/**馆藏状态(在馆、借出)**/-->
-<!--const sourceText = computed(() => {-->
-<!--  if (specimenRecord.value === null) {-->
-<!--    return '';-->
-<!--  }-->
-<!--  switch (specimenRecord.value.source) {-->
-<!--    case 0:-->
-<!--      return '采购';-->
-<!--    case 1:-->
-<!--      return '捐赠';-->
-<!--    case 2:-->
-<!--      return '采集';-->
-<!--    default:-->
-<!--      return '';-->
-<!--  }-->
-<!--});-->
-
-
-<!--</script>-->
-
-<!--<style scoped lang="scss">-->
-<!--.demo-image__error .image-slot {-->
-<!--  font-size: 30px;-->
-<!--}-->
-
-<!--.demo-image__error .image-slot .el-icon {-->
-<!--  font-size: 30px;-->
-<!--}-->
-
-<!--.demo-image__error .el-image {-->
-<!--  width: 100%;-->
-<!--  height: 200px;-->
-
-<!--}-->
-
-<!--.text1 {-->
-<!--  font-weight: bold;-->
-<!--  color: #0f2438;-->
-<!--}-->
-
-<!--.label {-->
-<!--  display: inline-block;-->
-<!--  text-align: right;-->
-<!--  width: 100px;-->
-<!--  font-weight: bold;-->
-<!--  color: black;-->
-<!--}-->
-
-
-<!--.scrollbar-imag-item {-->
-<!--  flex-shrink: 0;-->
-<!--  display: flex;-->
-<!--  align-items: center;-->
-<!--  justify-content: center;-->
-<!--  width: 100px;-->
-<!--  height: 50px;-->
-<!--  margin: 10px;-->
-<!--  text-align: center;-->
-<!--  background: var(&#45;&#45;el-color-danger-light-9);-->
-<!--  color: var(&#45;&#45;el-color-danger);-->
-<!--}-->
-<!--.label-width .el-descriptions-item__label  {-->
-<!--  width: 90px;-->
-<!--  flex: 1;-->
-<!--}-->
-<!--.el-descriptions-item {-->
-<!--  margin-bottom: 20px;-->
-<!--  margin-top: 20px;-->
-<!--}-->
-
-<!--</style>-->