Răsfoiți Sursa

Merge remote-tracking branch 'origin/develop' into develop

weirenchun 2 ani în urmă
părinte
comite
e7c5670a8a

+ 16 - 5
src/api/project/index.js

@@ -364,14 +364,14 @@ export default {
       'post'
     )
   },
-  //获取项目年度投资
+  // 获取项目年度投资
   projectAnnualInvestment(params) {
     return fetch(
       '/blade-project-manage-v2/project-dispatch/v2/project-annual-investment',
       params
     )
   },
-  //新增或修改年度投资
+  // 新增或修改年度投资
   submitAnnualInvestment(params) {
     return fetch(
       '/blade-project-manage-v2/project-dispatch/v2/submit-annual-investment',
@@ -380,14 +380,14 @@ export default {
       'json'
     )
   },
-  //项目前期文件列表
+  // 项目前期文件列表
   preliminaryFiles(params) {
     return fetch(
       '/blade-project-manage-v2/project-dispatch/v2/situation-file-list',
       params
     )
   },
-  //添加项目前期文件
+  // 添加项目前期文件
   preliminaryFilesAdd(params) {
     return fetch(
       '/blade-project-manage-v2/project-dispatch/v2/situation-save-file',
@@ -396,13 +396,24 @@ export default {
       'json'
     )
   },
-  //删除项目前期文件
+  // 删除项目前期文件
   preliminaryFilesRemove(params) {
     return fetch(
       '/blade-project-manage-v2/project-dispatch/v2/situation-delete-file',
       params,
       'post'
     )
+  },
+  /**
+   * 项目照片
+   */
+  photoProject(params) {
+    return fetch(
+      '/blade-project-manage-v2/project-dispatch/v2/save-project-address-pic',
+      params,
+      'post',
+      'json'
+    )
   }
 }
 

+ 0 - 22
src/directives/watermark.js

@@ -1,22 +0,0 @@
-import { createApp } from 'vue'
-
-const app = createApp({})
-export default () => {
-  app.directive('watermark', (el, binding) => {
-    const addWaterMarker = (text, el) => {
-      const canvas = document.createElement('canvas')
-      canvas.width = 400
-      canvas.height = 200
-      const cans = canvas.getContext('2d')
-      cans.rotate((-20 * Math.PI) / 180) // 旋转弧度
-      cans.font = '16px' // 字体
-      cans.fillStyle = 'rgba(0, 0, 0, 0.5)' // 字体填充颜色
-      cans.textAlign = 'left' // 对齐方式
-      cans.textBaseline = 'Middle' // 基线
-      cans.fillText(text, canvas.width / 3, canvas.height / 2) // 被填充的文本
-      el.style.background = `url(${canvas.toDataURL('image/png')})`
-    }
-    const { text } = binding.value
-    addWaterMarker(text, el)
-  })
-}

+ 0 - 2
src/main.js

@@ -13,7 +13,6 @@ import '@/assets/style/theme/index.scss'
 import Avue from '@smallwei/avue'
 import '@smallwei/avue/lib/index.css'
 import bus from 'vue3-eventbus'
-import watermark from './directives/watermark.js'
 
 const myApp = createApp(App)
 myApp.config.globalProperties.$router = router
@@ -33,5 +32,4 @@ myApp
   .use(elementPlus, { locale, size: 'default', zIndex: 300 })
   .use(Avue)
   .use(bus)
-  .use(watermark)
   .mount('#app')

+ 6 - 6
src/utils/watermark.js

@@ -1,18 +1,18 @@
 /**  水印添加方法  */
 
-let setWatermark = (str1, str2) => {
-  let id = '1.23452384164.123412415'
+const setWatermark = (str1, str2) => {
+  const id = '1.23452384164.123412415'
 
   if (document.getElementById(id) !== null) {
     document.body.removeChild(document.getElementById(id))
   }
 
-  let can = document.createElement('canvas')
+  const can = document.createElement('canvas')
   // 设置canvas画布大小
   can.width = 420
   can.height = 180
 
-  let cans = can.getContext('2d')
+  const cans = can.getContext('2d')
   cans.rotate((-22.5 * Math.PI) / 180) // 水印旋转角度
   cans.font = '15px Vedana'
   cans.fillStyle = '#666666'
@@ -21,7 +21,7 @@ let setWatermark = (str1, str2) => {
   cans.fillText(str1, can.width / 2, can.height) // 水印在画布的位置x,y轴
   cans.fillText(str2, can.width / 2, can.height + 22)
 
-  let div = document.createElement('div')
+  const div = document.createElement('div')
   div.id = id
   div.style.pointerEvents = 'none'
   div.style.top = '40px'
@@ -47,7 +47,7 @@ export const setWaterMark = (str1, str2) => {
 
 // 移除水印方法
 export const removeWatermark = () => {
-  let id = '1.23452384164.123412415'
+  const id = '1.23452384164.123412415'
   if (document.getElementById(id) !== null) {
     document.body.removeChild(document.getElementById(id))
   }

+ 10 - 10
src/views/project/componens/info1.vue

@@ -189,19 +189,18 @@ export default {
     return {
       disabled: true,
       form: {},
-      params: {
-        zoom: 10
-      },
-      mapForm: [
-        113.10235504165291,
-        41.03624227495205,
-        '内蒙古自治区乌兰察布市集宁区新体路街道顺达源广告传媒'
-      ]
+      photoList: []
     }
   },
   methods: {
     save() {
-      console.log('save')
+      if (this.photoList.length > 0) {
+        this.$api.project.photoProject(this.photoList).then(res => {
+          if (res.code === 200) {
+            console.log(res)
+          }
+        })
+      }
       this.$api.project.proUpdate(this.form).then(res => {
         if (res.code === 200) {
           console.log(res)
@@ -219,10 +218,11 @@ export default {
       this.form.district_code = list[2].key
       this.form.district_name = list[2].title
     },
-    mapSuccess(res) {
+    mapSuccess(res, list) {
       this.form.address = res.address
       this.form.longitude = res.longitude
       this.form.latitude = res.latitude
+      this.photoList = list
     }
   }
 }

+ 27 - 5
src/views/project/componens/map-picker.vue

@@ -8,7 +8,7 @@
       ></el-input>
       <el-button type="primary" plain @click="show = true">查看地图</el-button>
     </div>
-    <el-dialog v-model="show" :width="960">
+    <el-dialog v-model="show" :width="960" @close="close">
       <template #header
         ><h4 class="full-width text-left">地理位置</h4></template
       >
@@ -34,10 +34,11 @@
         <el-divider />
         <div class="flex flex-center flex-justify-start full-width">
           <div class="text-left bold-500 black mr-10">相关图片</div>
-          <filepicker :project-id="projectId" />
+          <filepicker :project-id="projectId" @submit="filePicker" />
+          <span class="ml-20 font-12 grey-6">*请选择图片类型的文件</span>
         </div>
         <div class="img-content flex flex-justify-start hide-scrollbar mt-20">
-          <img src="../../../assets/svg/folder.svg" v-for="i in 20" />
+          <img :src="item.url" v-for="item in photoList" :key="item.url" />
         </div>
         <div class="full-width flex flex-center flex-justify-end">
           <el-button type="primary" plain @click="show = false"
@@ -52,6 +53,7 @@
 
 <script>
 import filepicker from '@/components/filepicker/index.vue'
+import api from '@/api/index.js'
 
 export default {
   components: {
@@ -110,7 +112,8 @@ export default {
         address: '',
         longitude: '',
         latitude: ''
-      }
+      },
+      photoList: []
     }
   },
   methods: {
@@ -207,7 +210,26 @@ export default {
       this.form.latitude = this.latitude
       this.form.longitude = this.longitude
       this.show = false
-      this.$emit('success', this.form)
+      this.$emit('success', this.form, this.photoList)
+    },
+    filePicker(list) {
+      const tmps = list
+        .filter(ele => !api.offices.includes(ele.suffix))
+        .map(ele => {
+          console.log(ele)
+          return {
+            bladeFileId: ele.fileId,
+            fileId: ele.id,
+            projectId: ele.projectId,
+            title: ele.title,
+            url: ele.url,
+            folderId: ele.parentId
+          }
+        })
+      this.photoList = this.photoList.concat(tmps)
+    },
+    close() {
+      // this.photoList.length = 0
     }
   }
 }

+ 1 - 0
src/views/project/index.vue

@@ -111,6 +111,7 @@ export default {
 .bottom {
   position: fixed;
   bottom: 0;
+  z-index: 3;
   height: 68px;
   width: 1300px;
   background-color: white;