Ver código fonte

20240723中图代码合并

lkk 11 meses atrás
pai
commit
930b02204a

+ 423 - 375
src/views/ConstructionApplication3D/Demolition/CQSetInfo.vue

@@ -1,393 +1,442 @@
-
 <template>
-    <!-- @blur="selectBlur($event, index)"  -->
-    <div class="ZTGlobal" style="padding: 1rem; ;width: 100%;">
-        <el-row :gutter="10">
-            <el-col :span="6">征地补偿标准:</el-col>
-            <el-col :span="18">
-                <el-select v-model="bcbz" style="width: 90%;" @change="selectZDBZ" placeholder="请选择">
-                    <el-option v-for=" item in bcbzList" :key="item.value" :label="item.label"
-                        :value="item.value"></el-option>
-                </el-select>
-            </el-col>
-        </el-row>
-        <!-- :span-method="arraySpanMethod" -->
-        <el-table :data="curBCBZ.BCBZ" fit border style="width: 100%">
-            <!-- <el-table-column prop="id" label="ID" width="180">
+  <!-- @blur="selectBlur($event, index)"  -->
+  <div class="ZTGlobal" style="padding: 1rem; width: 100%">
+    <el-row :gutter="10">
+      <el-col :span="6">征地补偿标准:</el-col>
+      <el-col :span="18">
+        <el-select
+          v-model="bcbz"
+          style="width: 90%"
+          @change="selectZDBZ"
+          placeholder="请选择"
+        >
+          <el-option
+            v-for="item in bcbzList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+      </el-col>
+    </el-row>
+    <!-- :span-method="arraySpanMethod" -->
+    <el-table :data="curBCBZ.BCBZ" fit border style="width: 100%">
+      <!-- <el-table-column prop="id" label="ID" width="180">
             </el-table-column> -->
-            <el-table-column prop="JG" label="房屋结构" width="80">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.JG" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.JG }}</div>
-                </template>
-            </el-table-column>
-            <el-table-column prop="GRADE" label="等级" width="60">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.GRADE" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.GRADE }}</div>
-                </template>
-            </el-table-column>
-            <el-table-column prop="BZ" label="单价(元/平方米)" width="80">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.BZ" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.BZ }}</div>
-                </template>
-            </el-table-column>
-            <el-table-column prop="DES" label="结构及装饰特征(规格)">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.DES" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.DES }}</div>
-                </template>
-            </el-table-column>
-            <el-table-column fixed="right" label="操作" width="100">
-                <template slot-scope="scope">
-                    <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
-                    <el-button type="text" size="small">删除</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <el-row justify="center" type="flex">
-            <el-button type="primary" @click="save()">保存</el-button>
-            <el-button type="primary" @click="saveAs()">另存为</el-button>
-            <el-button type="primary" @click="reset()">重置</el-button>
-        </el-row>
-        <el-dialog title="标准名称设置" :modal="false" :visible.sync="dialogFormVisible" modal-append-to-body>
-            <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
-                <el-form-item label="名称" prop="name">
-                    <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="dialogFormVisible = false">取消</el-button>
-                <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
-            </div>
-        </el-dialog>
+      <el-table-column prop="JG" label="房屋结构" width="80">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.JG"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.JG }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="GRADE" label="等级" width="60">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.GRADE"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.GRADE }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="BZ" label="单价(元/平方米)" width="80">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.BZ"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.BZ }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="DES" label="结构及装饰特征(规格)">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.DES"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.DES }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column fixed="right" label="操作" width="100">
+        <template slot-scope="scope">
+          <el-button @click="handleClick(scope.row)" type="text" size="small"
+            >编辑</el-button
+          >
+          <el-button type="text" size="small">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-row justify="center" type="flex">
+      <el-button type="primary" @click="save()">保存</el-button>
+      <el-button type="primary" @click="saveAs()">另存为</el-button>
+      <el-button type="primary" @click="reset()">重置</el-button>
+    </el-row>
+    <el-dialog
+      title="标准名称设置"
+      :modal="false"
+      :visible.sync="dialogFormVisible"
+      modal-append-to-body
+    >
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取消</el-button>
+        <el-button type="primary" @click="submitForm('ruleForm')"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
 
-        <el-dialog title="编辑" :modal="false" :visible.sync="editFormVisible" modal-append-to-body>
-            <el-form :model="oldRow" :rules="rules" ref="oldRow">
-                <el-form-item label="房屋结构" prop="JG">
-                    <el-select v-model="oldRow.JG">
-                        <el-option label="框架结构" value="框架结构"></el-option>
-                        <el-option label="混合结构" value="混合结构"></el-option>
-                        <el-option label="砖木结构" value="砖木结构"></el-option>
-                        <el-option label="简易结构" value="简易结构"></el-option>
-                        <el-option label="凉棚" value="凉棚"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="房屋等级" prop="GRADE">
-                    <el-input v-model="oldRow.GRADE" type="number" min="1" max="5" autocomplete="off"></el-input>
-                </el-form-item>
-                <el-form-item label="单价(元/平方米)" prop="BZ">
-                    <el-input type="number" min="0" max="100000000" v-model="oldRow.BZ"
-                        autocomplete="off"></el-input>
-                </el-form-item>
-                <el-form-item label="规格" prop="DES">
-                    <el-input type="textarea" :rows="4" v-model="oldRow.DES" autocomplete="off"></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="editFormVisible = false">取消</el-button>
-                <el-button type="primary" @click="submitEditForm('rowForm')">确 定</el-button>
-            </div>
-        </el-dialog>
-    </div>
+    <el-dialog
+      title="编辑"
+      :modal="false"
+      :visible.sync="editFormVisible"
+      modal-append-to-body
+    >
+      <el-form :model="oldRow" :rules="rules" ref="oldRow">
+        <el-form-item label="房屋结构" prop="JG">
+          <el-select v-model="oldRow.JG">
+            <el-option label="框架结构" value="框架结构"></el-option>
+            <el-option label="混合结构" value="混合结构"></el-option>
+            <el-option label="砖木结构" value="砖木结构"></el-option>
+            <el-option label="简易结构" value="简易结构"></el-option>
+            <el-option label="凉棚" value="凉棚"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋等级" prop="GRADE">
+          <el-input
+            v-model="oldRow.GRADE"
+            type="number"
+            min="1"
+            max="5"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="单价(元/平方米)" prop="BZ">
+          <el-input
+            type="number"
+            min="0"
+            max="100000000"
+            v-model="oldRow.BZ"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="规格" prop="DES">
+          <el-input
+            type="textarea"
+            :rows="4"
+            v-model="oldRow.DES"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="editFormVisible = false">取消</el-button>
+        <el-button type="primary" @click="submitEditForm('rowForm')"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
 </template>
 <script>
 export default {
-    props: ["cqValue"],
-    name: 'ZDShowInfo',
-    data() {
-        return {
-            editFormVisible: false,
-            dialogFormVisible: false,
-            ruleForm: {
-                name: null,
-
-            },
-            rules: {
-                name: [
-                    { required: true, message: '请输入名称', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ]
-            },
-            // rowForm: {
-            //     JG: "框架结构",
-            //     GRADE: 1,
-            //     BZ: 1350,
-            //     DES: ''
-            // },
-            rowRules: {
-                JG: [
-                    { required: true, message: '请选择结构', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ],
-                GRADE: [
-                    { required: true, message: '请选择等级', trigger: 'blur' },
-                    // { min: 1, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ],
-                BZ: [
-                    { required: true, message: '请输入名称', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ],
-                DES: [
-                    { required: true, message: '请输入规划', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ]
-            },
-            /**
-             * 补偿标准绑定值
-             */
-            bcbz: '',
-            // curLabel: '',
-            /**
-             * 补偿标准列表
-             */
-            bcbzList: JSON.parse(JSON.stringify(window.ZSBC.CQBCList)),
-            /**
-             * 当前标准
-             */
-            curBCBZ: {
-                label: "",
-                value: "",
-                BCBZ: [
-                    // {
-                    //     JG: "框架结构",
-                    //     GRADE: "1",
-                    //     BZ: 1350,
-                    //     DES: "层高:3.5m,惨板:钢筋砼8cm厚,楼地面:铺地板砖,基础:钢筋砼基础,梁柱:钢筋砼梁柱,墙体:红砖内外墙,水电:普通水电及卫生设备,墙面:内墙一般涂料,外墙有装饰面,窗:铝合金玻璃窗,门:普通镶板门",
-                    // },
-                    // {
-                    //     JG: "框架结构",
-                    //     GRADE: "2",
-                    //     BZ: 1250,
-                    //     DES: "层高:3m,楼板:钢筋砼8cm厚,地面:水泥砂浆批面,梁柱:钢筋砼梁柱,基础:钢筋砼基础,墙体:红砖内外墙,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
-                    // },
-                    // {
-                    //     JG: "混合结构",
-                    //     GRADE: "1",
-                    //     BZ: 1100,
-                    //     DES: "层高:3.5m,楼板:钢筋砼8cm厚,楼地面:铺地板砖,墙体:红砖内外墙,基础:地梁,片石基础,墙面:内墙一般涂料、外墙有装饰贴面,水电:普通水电及卫生洁具,窗:铝合金玻璃窗门:普通木门",
-                    // },
-                    // {
-                    //     JG: "混合结构",
-                    //     GRADE: "2",
-                    //     BZ: 1050,
-                    //     DES: "层高:3m,楼板:钢筋砼8cm厚,楼地面:水泥砂浆批面,墙体:红砖内外墙,基础:地梁片石基础,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
-                    // },
-                    // {
-                    //     JG: "砖木结构",
-                    //     GRADE: "1",
-                    //     BZ: 850,
-                    //     DES: "檐高:2.8m以上,墙体:红砖内外墙,地面:水泥砂浆批面、基础片石基础,屋面:土瓦屋面,梁料:木梁木,门窗:本门窗,墙面:石灰刷白,其他:普通水电设备",
-                    // },
-                    // {
-                    //     JG: "砖木结构",
-                    //     GRADE: "2",
-                    //     BZ: 750,
-                    //     DES: "檐高2.2m-2.8m,墙体:红砖内外墙,地面:水泥砂浆批面,墙面:石灰刷白,基础:片石基础,屋面:土瓦屋面,梁桁:木料木桁,门窗:木门窗",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "1",
-                    //     BZ: 350,
-                    //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:铁皮顶或石棉瓦顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "2",
-                    //     BZ: 300,
-                    //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:油毡顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "3",
-                    //     BZ: 280,
-                    //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:铁皮顶或石棉瓦顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "4",
-                    //     BZ: 200,
-                    //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:油毡顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "5",
-                    //     BZ: 80,
-                    //     DES: "层高:2.2m-3m,墙体:木板、铁皮、竹编等材料墙,屋顶油毡顶",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "1",
-                    //     BZ: 120,
-                    //     DES: "铁皮顶或石棉瓦顶、铁柱、铁架",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "2",
-                    //     BZ: 70,
-                    //     DES: "铁皮顶或石棉瓦顶、木柱、木架",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "3",
-                    //     BZ: 20,
-                    //     DES: "油毡顶、竹片顶、木板顶、木柱、木架",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "4",
-                    //     BZ: 10,
-                    //     DES: "茅草、编叶、柳叶等",
-                    // }
-                ]
-            },
-
+  props: ["cqValue"],
+  name: "ZDShowInfo",
+  data() {
+    return {
+      editFormVisible: false,
+      dialogFormVisible: false,
+      ruleForm: {
+        name: null,
+      },
+      rules: {
+        name: [
+          { required: true, message: "请输入名称", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+      },
+      // rowForm: {
+      //     JG: "框架结构",
+      //     GRADE: 1,
+      //     BZ: 1350,
+      //     DES: ''
+      // },
+      rowRules: {
+        JG: [
+          { required: true, message: "请选择结构", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+        GRADE: [
+          { required: true, message: "请选择等级", trigger: "blur" },
+          // { min: 1, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+        BZ: [
+          { required: true, message: "请输入名称", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+        DES: [
+          { required: true, message: "请输入规划", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+      },
+      /**
+       * 补偿标准绑定值
+       */
+      bcbz: "",
+      // curLabel: '',
+      /**
+       * 补偿标准列表
+       */
+      bcbzList: JSON.parse(JSON.stringify(window.ZSBC.CQBCList)),
+      /**
+       * 当前标准
+       */
+      curBCBZ: {
+        label: "",
+        value: "",
+        BCBZ: [
+          // {
+          //     JG: "框架结构",
+          //     GRADE: "1",
+          //     BZ: 1350,
+          //     DES: "层高:3.5m,惨板:钢筋砼8cm厚,楼地面:铺地板砖,基础:钢筋砼基础,梁柱:钢筋砼梁柱,墙体:红砖内外墙,水电:普通水电及卫生设备,墙面:内墙一般涂料,外墙有装饰面,窗:铝合金玻璃窗,门:普通镶板门",
+          // },
+          // {
+          //     JG: "框架结构",
+          //     GRADE: "2",
+          //     BZ: 1250,
+          //     DES: "层高:3m,楼板:钢筋砼8cm厚,地面:水泥砂浆批面,梁柱:钢筋砼梁柱,基础:钢筋砼基础,墙体:红砖内外墙,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
+          // },
+          // {
+          //     JG: "混合结构",
+          //     GRADE: "1",
+          //     BZ: 1100,
+          //     DES: "层高:3.5m,楼板:钢筋砼8cm厚,楼地面:铺地板砖,墙体:红砖内外墙,基础:地梁,片石基础,墙面:内墙一般涂料、外墙有装饰贴面,水电:普通水电及卫生洁具,窗:铝合金玻璃窗门:普通木门",
+          // },
+          // {
+          //     JG: "混合结构",
+          //     GRADE: "2",
+          //     BZ: 1050,
+          //     DES: "层高:3m,楼板:钢筋砼8cm厚,楼地面:水泥砂浆批面,墙体:红砖内外墙,基础:地梁片石基础,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
+          // },
+          // {
+          //     JG: "砖木结构",
+          //     GRADE: "1",
+          //     BZ: 850,
+          //     DES: "檐高:2.8m以上,墙体:红砖内外墙,地面:水泥砂浆批面、基础片石基础,屋面:土瓦屋面,梁料:木梁木,门窗:本门窗,墙面:石灰刷白,其他:普通水电设备",
+          // },
+          // {
+          //     JG: "砖木结构",
+          //     GRADE: "2",
+          //     BZ: 750,
+          //     DES: "檐高2.2m-2.8m,墙体:红砖内外墙,地面:水泥砂浆批面,墙面:石灰刷白,基础:片石基础,屋面:土瓦屋面,梁桁:木料木桁,门窗:木门窗",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "1",
+          //     BZ: 350,
+          //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:铁皮顶或石棉瓦顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "2",
+          //     BZ: 300,
+          //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:油毡顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "3",
+          //     BZ: 280,
+          //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:铁皮顶或石棉瓦顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "4",
+          //     BZ: 200,
+          //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:油毡顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "5",
+          //     BZ: 80,
+          //     DES: "层高:2.2m-3m,墙体:木板、铁皮、竹编等材料墙,屋顶油毡顶",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "1",
+          //     BZ: 120,
+          //     DES: "铁皮顶或石棉瓦顶、铁柱、铁架",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "2",
+          //     BZ: 70,
+          //     DES: "铁皮顶或石棉瓦顶、木柱、木架",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "3",
+          //     BZ: 20,
+          //     DES: "油毡顶、竹片顶、木板顶、木柱、木架",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "4",
+          //     BZ: 10,
+          //     DES: "茅草、编叶、柳叶等",
+          // }
+        ],
+      },
 
-            /**
-             * 行数据
-             */
-            oldRow: {},
-        }
+      /**
+       * 行数据
+       */
+      oldRow: {},
+    };
+  },
+  mounted() {
+    this.initForm();
+  },
+  methods: {
+    /**
+     * 初始化
+     */
+    initForm() {
+      debugger;
+      console.log(this.cqValue);
+      if (this.cqValue && this.cqValue != "") {
+        this.bcbz = this.cqValue;
+        var item = this.bcbzList.find((t) => t.value == this.bcbz);
+        this.curBCBZ = item;
+      }
     },
-    mounted() {
-        this.initForm()
+    /**
+     * 选择标准下拉框
+     */
+    selectZDBZ() {
+      debugger;
+      if (this.bcbz && this.bcbz != "") {
+        this.curBCBZ = this.bcbzList.find((t) => t.value == this.bcbz);
+      }
     },
-    methods:
-    {
-        /**
-         * 初始化
-         */
-        initForm() {
-
-            debugger
-            console.log(this.cqValue)
-            if (this.cqValue && this.cqValue != "") {
-                this.bcbz = this.cqValue
-                var item = this.bcbzList.find(t => t.value == this.bcbz)
-                this.curBCBZ = item
-            }
-        },
-        /**
-         * 选择标准下拉框
-         */
-        selectZDBZ() {
-            debugger
-            if (this.bcbz && this.bcbz != "") {
-                this.curBCBZ = this.bcbzList.find(t => t.value == this.bcbz)
-            }
-        },
-
-        /**
-         * 重置
-         */
-        reset() {
-            // var val = this.bcbz
-            this.bcbzList = JSON.parse(JSON.stringify(window.ZSBC.CQBCList))
-            var item = this.bcbzList.find(t => t.value == this.bcbz)
-            debugger
-            this.curBCBZ = item
-        },
 
-        /**
-         * 保存修改
-         */
-        save() {
-            if (this.bcbz == "") {
-                this.$layer.alert("请选择补偿标准");
-                return;
-            }
-            debugger
-            var index = window.ZSBC.CQBCList.findIndex(t => t.value == this.bcbz)
-            if (index > -1) {
-                window.ZSBC.CQBCList[index] = this.curBCBZ
-                this.$layer.alert("保存完成");
-            }
-        },
-        /***
-         * 另存为
-         */
-        saveAs() {
-            // if (this.bcbz == "") {
-            //     this.$layer.alert("请选择补偿标准");
-            //     return
-            // }
-            this.dialogFormVisible = true;
-        },
-        submitForm(formName) {
-            this.$refs[formName].validate((valid) => {
-                if (valid) {
-                    // alert('submit!');
-                    this.dialogFormVisible = false
-                    this.saveData()
-                    // this.$layer.alert("保存完成");
-                } else {
-                    console.log('error submit!!');
-                    return false;
-                }
-            });
-        },
-        /**
-         * 另存数据
-         */
-        saveData() {
-            debugger
-            var val = (window.ZSBC.CQBCList.length + 1).toString()
-            var newBCBZ = {
-
-                label: this.ruleForm.name,
-                value: val,
-                BCBZ: this.curBCBZ.BCBZ
-            }
-            window.ZSBC.CQBCList.push(newBCBZ)
-            this.bcbzList = window.ZSBC.CQBCList;
-            this.bcbz = val
-        },
-        /**
-         * 编辑按钮
-         */
-        handleClick(row) {
-          this.oldRow=row;
-          this.editFormVisible=true
-          
-        },
-        /**
-         * 开启行编辑
-         * @param {object} row 
-         */
-        handleSetFoucsSetData(row) {
-            this.oldRow = row
-
-        },
-        submitEditForm() {
-
-            this.editFormVisible=false;
+    /**
+     * 重置
+     */
+    reset() {
+      // var val = this.bcbz
+      this.bcbzList = JSON.parse(JSON.stringify(window.ZSBC.CQBCList));
+      var item = this.bcbzList.find((t) => t.value == this.bcbz);
+      debugger;
+      this.curBCBZ = item;
+    },
 
-        },
-        /**
-         * 保存当前行
-         * @param {object} row 
-         */
-        saveHandleClick(row) {
-            row.seen = false
+    /**
+     * 保存修改
+     */
+    save() {
+      if (this.bcbz == "") {
+        this.$layer.alert("请选择补偿标准");
+        return;
+      }
+      debugger;
+      var index = window.ZSBC.CQBCList.findIndex((t) => t.value == this.bcbz);
+      if (index > -1) {
+        window.ZSBC.CQBCList[index] = this.curBCBZ;
+        this.$layer.alert("保存完成");
+      }
+    },
+    /***
+     * 另存为
+     */
+    saveAs() {
+      // if (this.bcbz == "") {
+      //     this.$layer.alert("请选择补偿标准");
+      //     return
+      // }
+      this.dialogFormVisible = true;
+    },
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          // alert('submit!');
+          this.dialogFormVisible = false;
+          this.saveData();
+          // this.$layer.alert("保存完成");
+        } else {
+          console.log("error submit!!");
+          return false;
         }
-    }
-}
+      });
+    },
+    /**
+     * 另存数据
+     */
+    saveData() {
+      debugger;
+      var val = (window.ZSBC.CQBCList.length + 1).toString();
+      var newBCBZ = {
+        label: this.ruleForm.name,
+        value: val,
+        BCBZ: this.curBCBZ.BCBZ,
+      };
+      window.ZSBC.CQBCList.push(newBCBZ);
+      this.bcbzList = window.ZSBC.CQBCList;
+      this.bcbz = val;
+    },
+    /**
+     * 编辑按钮
+     */
+    handleClick(row) {
+      this.oldRow = row;
+      this.editFormVisible = true;
+    },
+    /**
+     * 开启行编辑
+     * @param {object} row
+     */
+    handleSetFoucsSetData(row) {
+      this.oldRow = row;
+    },
+    submitEditForm() {
+      this.editFormVisible = false;
+    },
+    /**
+     * 保存当前行
+     * @param {object} row
+     */
+    saveHandleClick(row) {
+      row.seen = false;
+    },
+  },
+};
 </script>
 <style lang="scss">
 @import "@/../../zt.scss";
 </style>
 
-<!-- <style scoped>
-.subtitle {
+<style scoped>
+/* .subtitle {
     color: #02a7f0;
     font-weight: 400;
-} -->
-
+} */
+.el-input >>> .el-input__inner {
+  text-align: right !important;
+}
 /* .el -input>input, .el-select-dropdown, .el-textarea>textarea
 {
     color: #fff !important;
@@ -396,8 +445,7 @@ export default {
     text-align: center;
 
 } */
-.el-input__inner
-{
-   text-align: end;
+.el-input__inner {
+  text-align: end;
 }
-</style>
+</style>

+ 414 - 367
src/views/ConstructionApplication3D/Demolition/CQShowInfo.vue

@@ -1,393 +1,441 @@
-
 <template>
-    <!-- @blur="selectBlur($event, index)"  -->
-    <div class="ZTGlobal" style="padding: 1rem; ;width: 100%;">
-        <el-row :gutter="10">
-            <el-col :span="6">征地补偿标准:</el-col>
-            <el-col :span="18">
-                <el-select v-model="bcbz" style="width: 90%;" @change="selectZDBZ" placeholder="请选择">
-                    <el-option v-for=" item in bcbzList" :key="item.value" :label="item.label"
-                        :value="item.value"></el-option>
-                </el-select>
-            </el-col>
-        </el-row>
-        <!-- :span-method="arraySpanMethod" -->
-        <el-table :data="curBCBZ.BCBZ" fit border style="width: 100%">
-            <!-- <el-table-column prop="id" label="ID" width="180">
+  <!-- @blur="selectBlur($event, index)"  -->
+  <div class="ZTGlobal" style="padding: 1rem; width: 100%">
+    <el-row :gutter="10">
+      <el-col :span="6">征地补偿标准:</el-col>
+      <el-col :span="18">
+        <el-select
+          size="mini"
+          v-model="bcbz"
+          style="width: 90%"
+          @change="selectZDBZ"
+          placeholder="请选择"
+        >
+          <el-option
+            v-for="item in bcbzList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+      </el-col>
+    </el-row>
+    <!-- :span-method="arraySpanMethod" -->
+    <el-table :data="curBCBZ.BCBZ" fit border style="width: 100%">
+      <!-- <el-table-column prop="id" label="ID" width="180">
             </el-table-column> -->
-            <el-table-column prop="JG" label="房屋结构" width="80">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.JG" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.JG }}</div>
-                </template>
-            </el-table-column>
-            <el-table-column prop="GRADE" label="等级" width="60">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.GRADE" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.GRADE }}</div>
-                </template>
-            </el-table-column>
-            <el-table-column prop="BZ" label="单价(元/平方米)" width="80">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.BZ" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.BZ }}</div>
-                </template>
-            </el-table-column>
-            <el-table-column prop="DES" label="结构及装饰特征(规格)">
-                <template slot-scope="scope">
-                    <el-input v-model="scope.row.DES" v-show="scope.row.seen" @focus="handleSetFoucsSetData(scope.row)"
-                        @blur="loseFoucs(scope.row)"></el-input>
-                    <div v-show="!scope.row.seen">{{ scope.row.DES }}</div>
-                </template>
-            </el-table-column>
-            <!-- <el-table-column fixed="right" label="操作" width="100">
+      <el-table-column prop="JG" label="房屋结构" width="80">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.JG"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.JG }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="GRADE" label="等级" width="60">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.GRADE"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.GRADE }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="BZ" label="单价(元/平方米)" width="80">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.BZ"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.BZ }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="DES" label="结构及装饰特征(规格)">
+        <template slot-scope="scope">
+          <el-input
+            v-model="scope.row.DES"
+            v-show="scope.row.seen"
+            @focus="handleSetFoucsSetData(scope.row)"
+            @blur="loseFoucs(scope.row)"
+          ></el-input>
+          <div v-show="!scope.row.seen">{{ scope.row.DES }}</div>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column fixed="right" label="操作" width="100">
                 <template slot-scope="scope">
                     <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
                     <el-button type="text" size="small">删除</el-button>
                 </template>
             </el-table-column> -->
-        </el-table>
-        <!-- <el-row justify="center" type="flex">
+    </el-table>
+    <!-- <el-row justify="center" type="flex">
             <el-button type="primary" @click="save()">保存</el-button>
             <el-button type="primary" @click="saveAs()">另存为</el-button>
             <el-button type="primary" @click="reset()">重置</el-button>
         </el-row> -->
-        <el-dialog title="标准名称设置" modal="false" :visible.sync="dialogFormVisible" modal-append-to-body>
-            <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
-                <el-form-item label="名称" prop="name">
-                    <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="dialogFormVisible = false">取消</el-button>
-                <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
-            </div>
-        </el-dialog>
+    <el-dialog
+      title="标准名称设置"
+      modal="false"
+      :visible.sync="dialogFormVisible"
+      modal-append-to-body
+    >
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取消</el-button>
+        <el-button type="primary" @click="submitForm('ruleForm')"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
 
-        <el-dialog title="编辑" modal="false" :visible.sync="editFormVisible" modal-append-to-body>
-            <el-form :model="oldRow" :rules="rules" ref="oldRow">
-                <el-form-item label="房屋结构" prop="JG">
-                    <el-select v-model="oldRow.JG">
-                        <el-option label="框架结构" value="框架结构"></el-option>
-                        <el-option label="混合结构" value="混合结构"></el-option>
-                        <el-option label="砖木结构" value="砖木结构"></el-option>
-                        <el-option label="简易结构" value="简易结构"></el-option>
-                        <el-option label="凉棚" value="凉棚"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="房屋等级" prop="GRADE">
-                    <el-input v-model="oldRow.GRADE" type="number" min="1" max="5" autocomplete="off"></el-input>
-                </el-form-item>
-                <el-form-item label="单价(元/平方米)" prop="BZ">
-                    <el-input type="number" min="0" max="100000000" v-model="oldRow.BZ"
-                        autocomplete="off"></el-input>
-                </el-form-item>
-                <el-form-item label="规格" prop="DES">
-                    <el-input type="textarea" :rows="4" v-model="oldRow.DES" autocomplete="off"></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="editFormVisible = false">取消</el-button>
-                <el-button type="primary" @click="submitEditForm('rowForm')">确 定</el-button>
-            </div>
-        </el-dialog>
-    </div>
+    <el-dialog
+      title="编辑"
+      modal="false"
+      :visible.sync="editFormVisible"
+      modal-append-to-body
+    >
+      <el-form :model="oldRow" :rules="rules" ref="oldRow">
+        <el-form-item label="房屋结构" prop="JG">
+          <el-select v-model="oldRow.JG">
+            <el-option label="框架结构" value="框架结构"></el-option>
+            <el-option label="混合结构" value="混合结构"></el-option>
+            <el-option label="砖木结构" value="砖木结构"></el-option>
+            <el-option label="简易结构" value="简易结构"></el-option>
+            <el-option label="凉棚" value="凉棚"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房屋等级" prop="GRADE">
+          <el-input
+            v-model="oldRow.GRADE"
+            type="number"
+            min="1"
+            max="5"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="单价(元/平方米)" prop="BZ">
+          <el-input
+            type="number"
+            min="0"
+            max="100000000"
+            v-model="oldRow.BZ"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="规格" prop="DES">
+          <el-input
+            type="textarea"
+            :rows="4"
+            v-model="oldRow.DES"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="editFormVisible = false">取消</el-button>
+        <el-button type="primary" @click="submitEditForm('rowForm')"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+  </div>
 </template>
 <script>
 export default {
-    props: ["cqValue"],
-    name: 'ZDShowInfo',
-    data() {
-        return {
-            editFormVisible: false,
-            dialogFormVisible: false,
-            ruleForm: {
-                name: null,
+  props: ["cqValue"],
+  name: "ZDShowInfo",
+  data() {
+    return {
+      editFormVisible: false,
+      dialogFormVisible: false,
+      ruleForm: {
+        name: null,
+      },
+      rules: {
+        name: [
+          { required: true, message: "请输入名称", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+      },
+      // rowForm: {
+      //     JG: "框架结构",
+      //     GRADE: 1,
+      //     BZ: 1350,
+      //     DES: ''
+      // },
+      rowRules: {
+        JG: [
+          { required: true, message: "请选择结构", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+        GRADE: [
+          { required: true, message: "请选择等级", trigger: "blur" },
+          // { min: 1, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+        BZ: [
+          { required: true, message: "请输入名称", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+        DES: [
+          { required: true, message: "请输入规划", trigger: "blur" },
+          // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        ],
+      },
+      /**
+       * 补偿标准绑定值
+       */
+      bcbz: "",
+      // curLabel: '',
+      /**
+       * 补偿标准列表
+       */
+      bcbzList: JSON.parse(JSON.stringify(window.ZSBC.CQBCList)),
+      /**
+       * 当前标准
+       */
+      curBCBZ: {
+        label: "",
+        value: "",
+        BCBZ: [
+          // {
+          //     JG: "框架结构",
+          //     GRADE: "1",
+          //     BZ: 1350,
+          //     DES: "层高:3.5m,惨板:钢筋砼8cm厚,楼地面:铺地板砖,基础:钢筋砼基础,梁柱:钢筋砼梁柱,墙体:红砖内外墙,水电:普通水电及卫生设备,墙面:内墙一般涂料,外墙有装饰面,窗:铝合金玻璃窗,门:普通镶板门",
+          // },
+          // {
+          //     JG: "框架结构",
+          //     GRADE: "2",
+          //     BZ: 1250,
+          //     DES: "层高:3m,楼板:钢筋砼8cm厚,地面:水泥砂浆批面,梁柱:钢筋砼梁柱,基础:钢筋砼基础,墙体:红砖内外墙,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
+          // },
+          // {
+          //     JG: "混合结构",
+          //     GRADE: "1",
+          //     BZ: 1100,
+          //     DES: "层高:3.5m,楼板:钢筋砼8cm厚,楼地面:铺地板砖,墙体:红砖内外墙,基础:地梁,片石基础,墙面:内墙一般涂料、外墙有装饰贴面,水电:普通水电及卫生洁具,窗:铝合金玻璃窗门:普通木门",
+          // },
+          // {
+          //     JG: "混合结构",
+          //     GRADE: "2",
+          //     BZ: 1050,
+          //     DES: "层高:3m,楼板:钢筋砼8cm厚,楼地面:水泥砂浆批面,墙体:红砖内外墙,基础:地梁片石基础,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
+          // },
+          // {
+          //     JG: "砖木结构",
+          //     GRADE: "1",
+          //     BZ: 850,
+          //     DES: "檐高:2.8m以上,墙体:红砖内外墙,地面:水泥砂浆批面、基础片石基础,屋面:土瓦屋面,梁料:木梁木,门窗:本门窗,墙面:石灰刷白,其他:普通水电设备",
+          // },
+          // {
+          //     JG: "砖木结构",
+          //     GRADE: "2",
+          //     BZ: 750,
+          //     DES: "檐高2.2m-2.8m,墙体:红砖内外墙,地面:水泥砂浆批面,墙面:石灰刷白,基础:片石基础,屋面:土瓦屋面,梁桁:木料木桁,门窗:木门窗",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "1",
+          //     BZ: 350,
+          //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:铁皮顶或石棉瓦顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "2",
+          //     BZ: 300,
+          //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:油毡顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "3",
+          //     BZ: 280,
+          //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:铁皮顶或石棉瓦顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "4",
+          //     BZ: 200,
+          //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:油毡顶",
+          // },
+          // {
+          //     JG: "简易结构",
+          //     GRADE: "5",
+          //     BZ: 80,
+          //     DES: "层高:2.2m-3m,墙体:木板、铁皮、竹编等材料墙,屋顶油毡顶",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "1",
+          //     BZ: 120,
+          //     DES: "铁皮顶或石棉瓦顶、铁柱、铁架",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "2",
+          //     BZ: 70,
+          //     DES: "铁皮顶或石棉瓦顶、木柱、木架",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "3",
+          //     BZ: 20,
+          //     DES: "油毡顶、竹片顶、木板顶、木柱、木架",
+          // },
+          // {
+          //     JG: "凉棚",
+          //     GRADE: "4",
+          //     BZ: 10,
+          //     DES: "茅草、编叶、柳叶等",
+          // }
+        ],
+      },
 
-            },
-            rules: {
-                name: [
-                    { required: true, message: '请输入名称', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ]
-            },
-            // rowForm: {
-            //     JG: "框架结构",
-            //     GRADE: 1,
-            //     BZ: 1350,
-            //     DES: ''
-            // },
-            rowRules: {
-                JG: [
-                    { required: true, message: '请选择结构', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ],
-                GRADE: [
-                    { required: true, message: '请选择等级', trigger: 'blur' },
-                    // { min: 1, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ],
-                BZ: [
-                    { required: true, message: '请输入名称', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ],
-                DES: [
-                    { required: true, message: '请输入规划', trigger: 'blur' },
-                    // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-                ]
-            },
-            /**
-             * 补偿标准绑定值
-             */
-            bcbz: '',
-            // curLabel: '',
-            /**
-             * 补偿标准列表
-             */
-            bcbzList: JSON.parse(JSON.stringify(window.ZSBC.CQBCList)),
-            /**
-             * 当前标准
-             */
-            curBCBZ: {
-                label: "",
-                value: "",
-                BCBZ: [
-                    // {
-                    //     JG: "框架结构",
-                    //     GRADE: "1",
-                    //     BZ: 1350,
-                    //     DES: "层高:3.5m,惨板:钢筋砼8cm厚,楼地面:铺地板砖,基础:钢筋砼基础,梁柱:钢筋砼梁柱,墙体:红砖内外墙,水电:普通水电及卫生设备,墙面:内墙一般涂料,外墙有装饰面,窗:铝合金玻璃窗,门:普通镶板门",
-                    // },
-                    // {
-                    //     JG: "框架结构",
-                    //     GRADE: "2",
-                    //     BZ: 1250,
-                    //     DES: "层高:3m,楼板:钢筋砼8cm厚,地面:水泥砂浆批面,梁柱:钢筋砼梁柱,基础:钢筋砼基础,墙体:红砖内外墙,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
-                    // },
-                    // {
-                    //     JG: "混合结构",
-                    //     GRADE: "1",
-                    //     BZ: 1100,
-                    //     DES: "层高:3.5m,楼板:钢筋砼8cm厚,楼地面:铺地板砖,墙体:红砖内外墙,基础:地梁,片石基础,墙面:内墙一般涂料、外墙有装饰贴面,水电:普通水电及卫生洁具,窗:铝合金玻璃窗门:普通木门",
-                    // },
-                    // {
-                    //     JG: "混合结构",
-                    //     GRADE: "2",
-                    //     BZ: 1050,
-                    //     DES: "层高:3m,楼板:钢筋砼8cm厚,楼地面:水泥砂浆批面,墙体:红砖内外墙,基础:地梁片石基础,墙面:一般涂料,门窗:木门窗,水电:普通水电及卫生洁具",
-                    // },
-                    // {
-                    //     JG: "砖木结构",
-                    //     GRADE: "1",
-                    //     BZ: 850,
-                    //     DES: "檐高:2.8m以上,墙体:红砖内外墙,地面:水泥砂浆批面、基础片石基础,屋面:土瓦屋面,梁料:木梁木,门窗:本门窗,墙面:石灰刷白,其他:普通水电设备",
-                    // },
-                    // {
-                    //     JG: "砖木结构",
-                    //     GRADE: "2",
-                    //     BZ: 750,
-                    //     DES: "檐高2.2m-2.8m,墙体:红砖内外墙,地面:水泥砂浆批面,墙面:石灰刷白,基础:片石基础,屋面:土瓦屋面,梁桁:木料木桁,门窗:木门窗",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "1",
-                    //     BZ: 350,
-                    //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:铁皮顶或石棉瓦顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "2",
-                    //     BZ: 300,
-                    //     DES: "层高:2.2m-3m,墙体:红砖墙,屋顶:油毡顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "3",
-                    //     BZ: 280,
-                    //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:铁皮顶或石棉瓦顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "4",
-                    //     BZ: 200,
-                    //     DES: "层高:2.2m-3m,墙体:空心砖,屋顶:油毡顶",
-                    // },
-                    // {
-                    //     JG: "简易结构",
-                    //     GRADE: "5",
-                    //     BZ: 80,
-                    //     DES: "层高:2.2m-3m,墙体:木板、铁皮、竹编等材料墙,屋顶油毡顶",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "1",
-                    //     BZ: 120,
-                    //     DES: "铁皮顶或石棉瓦顶、铁柱、铁架",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "2",
-                    //     BZ: 70,
-                    //     DES: "铁皮顶或石棉瓦顶、木柱、木架",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "3",
-                    //     BZ: 20,
-                    //     DES: "油毡顶、竹片顶、木板顶、木柱、木架",
-                    // },
-                    // {
-                    //     JG: "凉棚",
-                    //     GRADE: "4",
-                    //     BZ: 10,
-                    //     DES: "茅草、编叶、柳叶等",
-                    // }
-                ]
-            },
-
-
-            /**
-             * 行数据
-             */
-            oldRow: {},
-        }
+      /**
+       * 行数据
+       */
+      oldRow: {},
+    };
+  },
+  mounted() {
+    this.initForm();
+  },
+  methods: {
+    /**
+     * 初始化
+     */
+    initForm() {
+      debugger;
+      console.log(this.cqValue);
+      if (this.cqValue && this.cqValue != "") {
+        this.bcbz = this.cqValue;
+        var item = this.bcbzList.find((t) => t.value == this.bcbz);
+        this.curBCBZ = item;
+      }
     },
-    mounted() {
-        this.initForm()
+    /**
+     * 选择标准下拉框
+     */
+    selectZDBZ() {
+      debugger;
+      if (this.bcbz && this.bcbz != "") {
+        this.curBCBZ = this.bcbzList.find((t) => t.value == this.bcbz);
+      }
     },
-    methods:
-    {
-        /**
-         * 初始化
-         */
-        initForm() {
-
-            debugger
-            console.log(this.cqValue)
-            if (this.cqValue && this.cqValue != "") {
-                this.bcbz = this.cqValue
-                var item = this.bcbzList.find(t => t.value == this.bcbz)
-                this.curBCBZ = item
-            }
-        },
-        /**
-         * 选择标准下拉框
-         */
-        selectZDBZ() {
-            debugger
-            if (this.bcbz && this.bcbz != "") {
-                this.curBCBZ = this.bcbzList.find(t => t.value == this.bcbz)
-            }
-        },
-
-        /**
-         * 重置
-         */
-        reset() {
-            // var val = this.bcbz
-            this.bcbzList = JSON.parse(JSON.stringify(window.ZSBC.CQBCList))
-            var item = this.bcbzList.find(t => t.value == this.bcbz)
-            debugger
-            this.curBCBZ = item
-        },
-
-        /**
-         * 保存修改
-         */
-        save() {
-            if (this.bcbz == "") {
-                this.$layer.alert("请选择补偿标准");
-                return;
-            }
-            debugger
-            var index = window.ZSBC.CQBCList.findIndex(t => t.value == this.bcbz)
-            if (index > -1) {
-                window.ZSBC.CQBCList[index] = this.curBCBZ
-                this.$layer.alert("保存完成");
-            }
-        },
-        /***
-         * 另存为
-         */
-        saveAs() {
-            // if (this.bcbz == "") {
-            //     this.$layer.alert("请选择补偿标准");
-            //     return
-            // }
-            this.dialogFormVisible = true;
-        },
-        submitForm(formName) {
-            this.$refs[formName].validate((valid) => {
-                if (valid) {
-                    // alert('submit!');
-                    this.dialogFormVisible = false
-                    this.saveData()
-                    // this.$layer.alert("保存完成");
-                } else {
-                    console.log('error submit!!');
-                    return false;
-                }
-            });
-        },
-        /**
-         * 另存数据
-         */
-        saveData() {
-            debugger
-            var val = (window.ZSBC.CQBCList.length + 1).toString()
-            var newBCBZ = {
-
-                label: this.ruleForm.name,
-                value: val,
-                BCBZ: this.curBCBZ.BCBZ
-            }
-            window.ZSBC.CQBCList.push(newBCBZ)
-            this.bcbzList = window.ZSBC.CQBCList;
-            this.bcbz = val
-        },
-        /**
-         * 编辑按钮
-         */
-        handleClick(row) {
-          this.oldRow=row;
-          this.editFormVisible=true
-          
-        },
-        /**
-         * 开启行编辑
-         * @param {object} row 
-         */
-        handleSetFoucsSetData(row) {
-            this.oldRow = row
-
-        },
-        submitEditForm() {
 
-            this.editFormVisible=false;
+    /**
+     * 重置
+     */
+    reset() {
+      // var val = this.bcbz
+      this.bcbzList = JSON.parse(JSON.stringify(window.ZSBC.CQBCList));
+      var item = this.bcbzList.find((t) => t.value == this.bcbz);
+      debugger;
+      this.curBCBZ = item;
+    },
 
-        },
-        /**
-         * 保存当前行
-         * @param {object} row 
-         */
-        saveHandleClick(row) {
-            row.seen = false
+    /**
+     * 保存修改
+     */
+    save() {
+      if (this.bcbz == "") {
+        this.$layer.alert("请选择补偿标准");
+        return;
+      }
+      debugger;
+      var index = window.ZSBC.CQBCList.findIndex((t) => t.value == this.bcbz);
+      if (index > -1) {
+        window.ZSBC.CQBCList[index] = this.curBCBZ;
+        this.$layer.alert("保存完成");
+      }
+    },
+    /***
+     * 另存为
+     */
+    saveAs() {
+      // if (this.bcbz == "") {
+      //     this.$layer.alert("请选择补偿标准");
+      //     return
+      // }
+      this.dialogFormVisible = true;
+    },
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          // alert('submit!');
+          this.dialogFormVisible = false;
+          this.saveData();
+          // this.$layer.alert("保存完成");
+        } else {
+          console.log("error submit!!");
+          return false;
         }
-    }
-}
+      });
+    },
+    /**
+     * 另存数据
+     */
+    saveData() {
+      debugger;
+      var val = (window.ZSBC.CQBCList.length + 1).toString();
+      var newBCBZ = {
+        label: this.ruleForm.name,
+        value: val,
+        BCBZ: this.curBCBZ.BCBZ,
+      };
+      window.ZSBC.CQBCList.push(newBCBZ);
+      this.bcbzList = window.ZSBC.CQBCList;
+      this.bcbz = val;
+    },
+    /**
+     * 编辑按钮
+     */
+    handleClick(row) {
+      this.oldRow = row;
+      this.editFormVisible = true;
+    },
+    /**
+     * 开启行编辑
+     * @param {object} row
+     */
+    handleSetFoucsSetData(row) {
+      this.oldRow = row;
+    },
+    submitEditForm() {
+      this.editFormVisible = false;
+    },
+    /**
+     * 保存当前行
+     * @param {object} row
+     */
+    saveHandleClick(row) {
+      row.seen = false;
+    },
+  },
+};
 </script>
 <style lang="scss">
 @import "@/../../zt.scss";
 </style>
 
-<!-- <style scoped>
-.subtitle {
+<style scoped>
+/* .subtitle {
     color: #02a7f0;
     font-weight: 400;
-} -->
-
+} */
+.el-input >>> .el-input__inner {
+  text-align: right !important;
+}
 /* .el -input>input, .el-select-dropdown, .el-textarea>textarea
 {
     color: #fff !important;
@@ -396,8 +444,7 @@ export default {
     text-align: center;
 
 } */
-.el-input
-{
-   text-align: end;
-} 
-</style>
+.el-input {
+  text-align: end;
+}
+</style>

+ 301 - 65
src/views/ConstructionApplication3D/Demolition/DemolitionList.vue

@@ -23,13 +23,13 @@
           <el-form-item label="项目名称:" prop="projectName">
             <!-- <el-col :span="7">项目名称:</el-col> -->
             <el-col :span="16">
-              <el-input placeholder="输入项目名称" v-model="ruleForm.projectName"></el-input>
+              <el-input size="mini" placeholder="输入项目名称" v-model="ruleForm.projectName"></el-input>
             </el-col>
           </el-form-item>
           <el-form-item label="征地补偿标准:" prop="zdValue">
             <!-- <el-col :span="7">征地补偿标准:</el-col> -->
             <el-col :span="13">
-              <el-select v-model="ruleForm.zdValue" placeholder="请选择">
+              <el-select size="mini" v-model="ruleForm.zdValue" placeholder="请选择">
                 <el-option v-for="item in zdList" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -42,7 +42,7 @@
           <el-form-item label="青苗补偿标准:" prop="qmValue">
             <!-- <el-col :span="7">青苗补偿标准:</el-col> -->
             <el-col :span="13">
-              <el-select v-model="ruleForm.qmValue" placeholder="请选择">
+              <el-select size="mini" v-model="ruleForm.qmValue" placeholder="请选择">
                 <el-option v-for="item in qmList" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -55,7 +55,7 @@
           <el-form-item label="拆迁补偿标准:" prop="cqValue">
             <!-- <el-col :span="7">拆迁补偿标准:</el-col> -->
             <el-col :span="13">
-              <el-select v-model="ruleForm.cqValue" placeholder="请选择">
+              <el-select size="mini" v-model="ruleForm.cqValue" placeholder="请选择">
                 <el-option v-for="item in cqList" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -75,12 +75,12 @@
       <el-tab-pane label="分析记录" name="second">
         <el-row>
           <el-col :span="12">
-            <el-input placeholder="请输入项目名称" v-model="projectName">
+            <el-input size="mini" placeholder="请输入项目名称" v-model="searchName">
               <i slot="suffix" class="el-input__icon el-icon-search"></i>
             </el-input>
           </el-col>
           <el-col :span="12">
-            <el-date-picker v-model="dateVal" type="daterange" range-separator="至" start-placeholder="开始日期"
+            <el-date-picker size="mini" v-model="dateVal" type="daterange" range-separator="至" start-placeholder="开始日期"
               end-placeholder="结束日期">
             </el-date-picker>
           </el-col>
@@ -137,49 +137,51 @@
               </div>
               <div class="divCol">
                 <div class="divImg">
-                  <img :src="imgs.zd2" style="height: 2.5rem; width: 2.5rem" />
+                  <img :src="imgs.zd1" style="height: 2.5rem; width: 2.5rem" />
                 </div>
                 <div class="divText">
                   <div>
-                    <span style="color: #fff"> 预计征地补偿费(万元)</span>
+                    <span style="color: #fff"> 国有用地(亩)</span>
                   </div>
                   <div>
-                    <span color="#2d8cf0">{{ zdResult.totalPay }}</span>
+                    <span color="#2d8cf0">{{ zdResult.gyMJ }}</span>
                   </div>
                 </div>
               </div>
+
             </div>
             <!-- 第二行 -->
             <div class="divrow">
+              <!-- 123 -->
               <div class="divCol">
                 <div class="divImg">
-                  <img :src="imgs.zd1" style="height: 2.5rem; width: 2.5rem" />
+                  <img :src="imgs.zd2" style="height: 2.5rem; width: 2.5rem" />
                 </div>
                 <div class="divText">
                   <div>
-                    <span style="color: #fff"> 预计土地补偿费(万元)</span>
+                    <span style="color: #fff">集体用地(亩)</span>
                   </div>
                   <div>
-                    <span color="#2d8cf0">{{ zdResult.totalZDOay }}</span>
+                    <span color="#2d8cf0">{{ zdResult.jtMJ }}</span>
                   </div>
                 </div>
               </div>
-              <!-- 123 -->
+
               <div class="divCol">
                 <div class="divImg">
                   <img :src="imgs.zd2" style="height: 2.5rem; width: 2.5rem" />
                 </div>
                 <div class="divText">
                   <div>
-                    <span style="color: #fff"> 预计安置补偿费(万元)</span>
+                    <span style="color: #fff"> 集体征地补偿费(万元)</span>
                   </div>
                   <div>
-                    <span color="#2d8cf0">{{ zdResult.totalAZPay }}</span>
+                    <span color="#2d8cf0">{{ zdResult.totalPay }}</span>
                   </div>
                 </div>
               </div>
             </div>
-            <!-- 第行 -->
+            <!-- 第行 -->
             <div class="divrow">
               <div class="divCol">
                 <div class="divImg">
@@ -187,10 +189,10 @@
                 </div>
                 <div class="divText">
                   <div>
-                    <span style="color: #fff"> 国有用地(亩)</span>
+                    <span style="color: #fff"> 集体土地补偿费(万元)</span>
                   </div>
                   <div>
-                    <span color="#2d8cf0">{{ zdResult.gyMJ }}</span>
+                    <span color="#2d8cf0">{{ zdResult.totalZDOay }}</span>
                   </div>
                 </div>
               </div>
@@ -201,15 +203,24 @@
                 </div>
                 <div class="divText">
                   <div>
-                    <span style="color: #fff">集体用地(亩)</span>
+                    <span style="color: #fff"> 集体安置补偿费(万元)</span>
                   </div>
                   <div>
-                    <span color="#2d8cf0">{{ zdResult.jtMJ }}</span>
+                    <span color="#2d8cf0">{{ zdResult.totalAZPay }}</span>
                   </div>
                 </div>
               </div>
             </div>
-            <div id="ZDBCChart" style="height: 25rem; width: 25rem; overflow-y: auto"></div>
+
+            <el-tabs v-model="activateQS" @tab-click="qsClick">
+              <el-tab-pane label="国有土地" name="gytd">
+                <div id="ZDBCGYChart" style="height: 25rem; width: 25rem; overflow-y: auto"></div>
+              </el-tab-pane>
+              <el-tab-pane label="集体土地" name="jttd">
+                <div id="ZDBCChart" style="height: 25rem; width: 25rem; overflow-y: auto"></div>
+              </el-tab-pane>
+
+            </el-tabs>
           </el-tab-pane>
           <el-tab-pane label="青苗补偿费评估" name="QMPG">
             <!-- 第一行 -->
@@ -396,8 +407,9 @@
                 </div>
               </div>
             </div>
-            <div style="height: 2rem; width: 100%">
-              <el-col :span="6">
+            <div style="height: 2rem; width: 100%;padding-left: 1rem; font-size:medium;font-weight: 600;">
+              涉及房屋列表
+              <!-- <el-col :span="6">
                 <el-select>
                   <el-option>混合结构</el-option>
                   <el-option>砖木结构</el-option>
@@ -417,7 +429,7 @@
               </el-col>
               <el-col :span="11">
                 <el-input placeholder="请输入查询内容" suffix-icon="el-icon-search"></el-input>
-              </el-col>
+              </el-col> -->
             </div>
             <ul>
               <!-- item = { id: smid, cqr: cqrVal, jg: fwjgVal, fwdj: fwdjVal, floor: floorVal, jzmj: jzmjVal, zdmj: zdmjVal, address: addressVal, pay: pay, single: BZ } -->
@@ -484,8 +496,10 @@ export default {
   name: "DemolitionList",
   data() {
     return {
+      searchName: "",
       FileList: [],
       loading: null,
+      tableData: [],
       /**
        *
        */
@@ -517,6 +531,8 @@ export default {
        * tabs 标签
        */
       activeName: "first",
+      /**土地权属 */
+      activateQS: 'gytd',
       /**
        * 弹窗保证弹出唯一
        */
@@ -980,7 +996,7 @@ export default {
         //国有面积
         gyMJ: 0,
         //集体面积
-        jtMJ: 0,
+        jtMJ: 0.00,
         //征地面积
         totalZDMJ: 0,
         //总补偿
@@ -991,6 +1007,8 @@ export default {
         totalAZPay: 0,
         //地类及面积
         list: [],
+        //国有权属及面积
+        gyList: [],
         fieldInfos: [],
         features: [],
       },
@@ -1250,10 +1268,15 @@ export default {
 
       this.pageClick();
     },
+    /**
+     * 页面切换
+     */
     pageClick() {
       var page = this.activePage;
       this.ZDBCChart();
+      this.ZDBCGYChart();
       this.QMBCChart();
+
       // this.CQBCChart();
       // switch (page) {
       //     case "ZDPG":
@@ -1272,6 +1295,12 @@ export default {
         viewer.entities.removeById(this.entities[i].id);
       }
     },
+    /**
+     * 征地权属切换
+     */
+    qsClick(tab, event) {
+      viewer.entities.removeAll()
+    },
     handlePreview(file) { },
     handleRemove(file, fileList) { },
     beforeRemove(file, fileList) { },
@@ -1351,7 +1380,6 @@ export default {
       viewer.entities.removeById('polygon');
       polygonEntity = new Cesium.Entity({
         id: 'polygon',
-
         position: Cesium.Cartesian3.fromDegreesArray([
           centerX,
           centerY,
@@ -1405,14 +1433,17 @@ export default {
     pickEntity() {
       {
         handlerPolygon = null;
-        var tableData = [];
+
         var that = this;
         var id = '';
         var pick
+        that.tableData = [];
         handlerPolygon = new Cesium.ScreenSpaceEventHandler(scene.canvas);
         handlerPolygon.setInputAction(function (movement) {
           pick = viewer.scene.pick(movement.position);
-          tableData = [];
+          if (that.sublayerid)
+            that.$layer.close(that.sublayerid)
+
           if (pick != null) {
             id = pick.id._id
             if (id.indexOf("ZD") > -1) {
@@ -1432,22 +1463,22 @@ export default {
                   fieldNames[i].name.toUpperCase() == "SHAPE_LENG"
                 )
                   continue;
-                tableData.push({
+                that.tableData.push({
                   name: fieldNames[i].caption,
                   value: fieldValues[i],
                 });
               }
-              if (that.sublayerid)
-                that.$layer.close(that.sublayerid)
+
               that.sublayerid = that.$layer.iframe({
+                // id:'ss',
                 content: {
                   content: Property, //传递的组件对象
                   parent: that, //当前的vue对象
-                  data: { tableData: tableData }, //props
+                  data: { tableData: that.tableData }, //props
                 },
                 // offset: [left.toString(), top.toString()], //left top  左上角(left=430px/2;top=(800px+header高)/2)
-                area: ["25rem", "30rem"],
-                title: "拆迁补偿标准",
+                area: ["20rem", "30rem"],
+                title: "属性信息",
                 maxmin: false,
                 shade: false, //是否显示遮罩
                 shadeClose: false, //点击遮罩是否关闭
@@ -1572,7 +1603,7 @@ export default {
       dlmcIndex = that.getfldIndex(that.zdResult.fieldInfos, dlmcFld);
       var dlmc = "";
       var geometry;
-      that.pickEntity();
+
       myChart.on("click", function (parmas) {
         // that.pickEntity();
         // that.entities.forEach((item, index) => {
@@ -1633,6 +1664,161 @@ export default {
         }
       });
     },
+    /**
+    *国有chart
+    */
+    ZDBCGYChart() {
+      var that = this;
+      var chartDom = document.getElementById("ZDBCGYChart");
+      var myChart = window.echarts.init(chartDom);
+      // this.zdResult.list.push({ 'dlbm': dlbmVal, 'dlmc': dlmcVal, 'mj': insertArea });
+      var datas = [];
+      var nameLength = 0;
+      var colors = [];
+      var color = "";
+      for (var i = 0; i < that.zdResult.gyList.length; i++) {
+        if (that.zdResult.gyList[i].qsdwmc.length > nameLength) {
+          nameLength = that.zdResult.gyList[i].qsdwmc.length;
+        }
+        datas.push({
+          value: (that.zdResult.gyList[i].mj).toFixed(2),
+          name: that.zdResult.gyList[i].qsdwmc,
+        });
+        // color = that.getLandColor(that.zdResult.list[i].qsdwmc);
+        // colors.push(color);
+      }
+      var option = {
+        //   title: {
+        //       text: '',
+        //       subtext: '',
+        //       left: 'center'
+        //   },
+        tooltip: {
+          trigger: "item",
+        },
+        legend: {
+          type: "scroll",
+          orient: "vertical",
+          right: 0,
+          top: 20,
+          bottom: 20,
+          radius: "55%",
+          // bottom: 20,
+          textStyle: {
+            // fontSize: '12px',
+            color: "#FFFF",
+          },
+          data: datas.map((t) => t.name),
+          formatter: function (name) {
+            var val = datas.find((t) => t.name == name).value;
+            var lastSpace = (nameLength - name.length) * 3;
+            return name + new Array(lastSpace).join(" ") + val + "亩";
+          },
+        },
+
+        color: ["rgb(245,248,220)", "rgb(191,233,170)", "rgb(104,177,103)", "rgb(205,245,122)",
+          "rgb(101,205,170)",
+          "rgb(216,215,159)",
+          "rgb(255,255,45)",
+          "rgb(255,211,128)"],
+        series: [
+          {
+            name: "国有征地权属分析",
+            type: "pie",
+            center: ["25%", "50%"],
+            radius: ["30%", "50%"],
+            avoidLabelOverlap: false,
+            itemStyle: {
+              borderRadius: 10,
+              borderColor: "#fff",
+              borderWidth: 2,
+            },
+            label: {
+              show: false,
+              position: "center",
+            },
+            emphasis: {
+              label: {
+                show: true,
+                fontSize: 12,
+                fontWeight: "bold",
+              },
+            },
+            labelLine: {
+              show: false,
+            },
+            data: datas,
+          },
+        ],
+      };
+      myChart.setOption(option);
+      var fieldValues = [];
+      var qsdwIndex = -1;
+      var qsdwFld = window.ZSBC.ZDBCJS.DLTB.qsdwmc.field;
+      qsdwIndex = that.getfldIndex(that.zdResult.fieldInfos, qsdwFld);
+      var qsdw = "";
+      var geometry;
+      that.pickEntity();
+      myChart.on("click", function (parmas) {
+        // that.pickEntity();
+        // that.entities.forEach((item, index) => {
+        //   if (item.type == 'zd')
+        //     viewer.entities.removeById(item.id);
+        // })
+        var color = parmas.color
+          .replace("rgb", "")
+          .replace("(", "")
+          .replace(")", "");
+        colors = color.split(",");
+        var name = parmas.name;
+        var features = that.zdResult.features;
+        var attributes = {};
+        for (var i = 0; i < features.length; i++) {
+          attributes = {
+            fieldNames: that.zdResult.fieldInfos,
+            fieldValues: features[i].fieldValues,
+          };
+          geometry = features[i].geometry;
+          fieldValues = features[i].fieldValues;
+          if (qsdwIndex > -1) {
+            qsdw = fieldValues[qsdwIndex];
+          }
+          if (qsdw == name) {
+            var positions = [];
+            for (var j = 0; j < geometry.points.length; j++) {
+              positions.push(geometry.points[j].x);
+              positions.push(geometry.points[j].y);
+            }
+            var entiy = new Cesium.Entity({
+              id: "ZDGY_" + i,
+              position: Cesium.Cartesian3.fromDegreesArray([
+                geometry.center.x,
+                geometry.center.y,
+              ]),
+              // classificationType: ClassificationType.TERRAIN,
+              polygon: {
+                hierarchy: new Cesium.PolygonHierarchy(
+                  new Cesium.Cartesian3.fromDegreesArray(positions)
+                ),
+                // positions: new Cesium.Cartesian3.fromDegreesArray(positions),
+                material: new Cesium.Color(
+                  parseInt(colors[0]) / 255,
+                  parseInt(colors[1]) / 255,
+                  parseInt(colors[2]) / 255,
+                  1
+                ),
+                outline: true,
+                outlineColor: Cesium.Color.BLACK,
+                outlineWidth: 1.0,
+              },
+            });
+            entiy.attributes = attributes;
+            that.entities.push({ type: "ZD", id: "ZDGY_" + i });
+            viewer.entities.add(entiy);
+          }
+        }
+      });
+    },
     /**
      * 青苗补偿chart
      */
@@ -2500,58 +2686,94 @@ export default {
       };
       var GYMJ = 0.00; //国有面积
       var JTMJ = 0.00;//集体面积
+      var gyList = []; //国有权属及面积
       features.forEach((curFeature, index) => {
         points = curFeature.geometry;
         //平方米折算
         var insertArea = that.calculateIntersectArea(geometry, points) / 666.66;
         // polygon2=that.creaturfPolygon(points);
         //青苗面积计算-->
-        if (dlmcIndex > -1) dlmcVal = curFeature.fieldValues[dlmcIndex];
-        if (dlbmIndex > -1) dlbmVal = curFeature.fieldValues[dlbmIndex];
+        //20240723 集体用地计算补偿  此部分 拿到 集体中计算
+        // if (dlmcIndex > -1) dlmcVal = curFeature.fieldValues[dlmcIndex];
+        // if (dlbmIndex > -1) dlbmVal = curFeature.fieldValues[dlbmIndex];
+        // if (smfl.indexOf(dlmcVal) > -1) {
+        //   smMJ += insertArea;
+        //   that.qmResult.features.push(curFeature);
+        // } else if (jjzwfl.indexOf(dlbmVal) > -1) {
+        //   jjzwMJ += insertArea;
+        //   that.qmResult.features.push(curFeature);
+        // } else if (nzwfl.indexOf(dlbmVal) > -1) {
+        //   nzwMJ += insertArea;
+        //   that.qmResult.features.push(curFeature);
+        // }
         if (qsdwmcIndex > -1) qsdwmcValue = curFeature.fieldValues[qsdwmcIndex];
-        if (smfl.indexOf(dlmcVal) > -1) {
-          smMJ += insertArea;
-          that.qmResult.features.push(curFeature);
-        } else if (jjzwfl.indexOf(dlbmVal) > -1) {
-          jjzwMJ += insertArea;
-          that.qmResult.features.push(curFeature);
-        } else if (nzwfl.indexOf(dlbmVal) > -1) {
-          nzwMJ += insertArea;
-          that.qmResult.features.push(curFeature);
-        }
         if (qsdwmcValue != "") {
-
           if (that.isValueInList(likeList, qsdwmcValue)) {
             JTMJ += insertArea;
+
+            //青苗计算 移到此处
+            if (dlmcIndex > -1) dlmcVal = curFeature.fieldValues[dlmcIndex];
+            if (dlbmIndex > -1) dlbmVal = curFeature.fieldValues[dlbmIndex];
+            if (smfl.indexOf(dlmcVal) > -1) {
+              smMJ += insertArea;
+              that.qmResult.features.push(curFeature);
+            } else if (jjzwfl.indexOf(dlbmVal) > -1) {
+              jjzwMJ += insertArea;
+              that.qmResult.features.push(curFeature);
+            } else if (nzwfl.indexOf(dlbmVal) > -1) {
+              nzwMJ += insertArea;
+              that.qmResult.features.push(curFeature);
+            }
+            //地类统计
+            var dlIndex = -1;
+            that.zdResult.list.forEach((t, index) => {
+              if (t.dlbm == dlbmVal) {
+                dlIndex = index;
+              }
+            });
+            if (dlIndex == -1)
+              that.zdResult.list.push({
+                dlbm: dlbmVal,
+                dlmc: dlmcVal,
+                mj: insertArea,
+              });
+            else that.zdResult.list[dlIndex].mj += insertArea;
           }
           else {
+            var curIndex = gyList.findIndex(t => t.qsdwmc == qsdwmcValue)
+            if (curIndex == -1) {
+              gyList.push({ qsdwmc: qsdwmcValue, mj: insertArea })
+            }
+            else {
+              gyList[curIndex].mj += insertArea;
+            }
             GYMJ += insertArea;
           }
         }
         //<--
         //征地面积计算-->
         //
-
         totalZDMJ += insertArea;
-        var dlIndex = -1;
-        that.zdResult.list.forEach((t, index) => {
-          if (t.dlbm == dlbmVal) {
-            dlIndex = index;
-          }
-        });
-        if (dlIndex == -1)
-          that.zdResult.list.push({
-            dlbm: dlbmVal,
-            dlmc: dlmcVal,
-            mj: insertArea,
-          });
-        else that.zdResult.list[dlIndex].mj += insertArea;
+        // var dlIndex = -1;
+        // that.zdResult.list.forEach((t, index) => {
+        //   if (t.dlbm == dlbmVal) {
+        //     dlIndex = index;
+        //   }
+        // });
+        // if (dlIndex == -1)
+        //   that.zdResult.list.push({
+        //     dlbm: dlbmVal,
+        //     dlmc: dlmcVal,
+        //     mj: insertArea,
+        //   });
+        // else that.zdResult.list[dlIndex].mj += insertArea;
         //<--
       });
       for (var i = 0; i < that.zdResult.list.length; i++) {
         var mj = parseFloat(that.zdResult.list[i].mj.toFixed(2));
         that.zdResult.list[i].mj = mj;
       }
+      that.zdResult.gyList = gyList;
       that.zdResult.gyMJ = parseFloat(GYMJ.toFixed(2));
       that.zdResult.jtMJ = parseFloat(JTMJ.toFixed(2));
 
@@ -2597,19 +2819,33 @@ export default {
       //征地补偿-->
       var ZDBZ = that.zdList.find((t) => (t.value = that.ruleForm.zdValue));
       if (ZDBZ) {
+
         //征地面积
         that.zdResult.totalZDMJ = parseFloat(totalZDMJ.toFixed(2));
+        // //总补偿
+        // that.zdResult.totalPay = parseFloat(
+        //   ((totalZDMJ * ZDBZ.BCBZ.BCHJ) / 10000).toFixed(2)
+        // );
+        // //征地补偿
+        // that.zdResult.totalZDOay = parseFloat(
+        //   ((totalZDMJ * ZDBZ.BCBZ.TDBCF) / 10000).toFixed(2)
+        // );
+        // //安置补偿
+        // that.zdResult.totalAZPay = parseFloat(
+        //   ((totalZDMJ * ZDBZ.BCBZ.AZBCF) / 10000).toFixed(2)
+        // );
+
         //总补偿
         that.zdResult.totalPay = parseFloat(
-          ((totalZDMJ * ZDBZ.BCBZ.BCHJ) / 10000).toFixed(2)
+          ((JTMJ * ZDBZ.BCBZ.BCHJ) / 10000).toFixed(2)
         );
         //征地补偿
         that.zdResult.totalZDOay = parseFloat(
-          ((totalZDMJ * ZDBZ.BCBZ.TDBCF) / 10000).toFixed(2)
+          ((JTMJ * ZDBZ.BCBZ.TDBCF) / 10000).toFixed(2)
         );
         //安置补偿
         that.zdResult.totalAZPay = parseFloat(
-          ((totalZDMJ * ZDBZ.BCBZ.AZBCF) / 10000).toFixed(2)
+          ((JTMJ * ZDBZ.BCBZ.AZBCF) / 10000).toFixed(2)
         );
       }
       that.zdResult.features = features;

+ 5 - 2
src/views/ConstructionApplication3D/Demolition/Property.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="ZTGlobal" >
+    <div class="ZTGlobal">
         <el-table :data="tableData" style="width: 100%">
             <el-table-column prop="name" label="字段名" width="180">
             </el-table-column>
@@ -13,6 +13,9 @@
 export default {
     name: "Property",
     props: ["tableData"],
- 
+
+
+
 }
+
 </script>

+ 42 - 12
src/views/ConstructionApplication3D/Demolition/QMSetInfo.vue

@@ -5,28 +5,50 @@
       <el-col :span="6">青苗补偿标准:</el-col>
       <el-col :span="18">
         <el-select v-model="bcbz" style="width: 90%" @change="selectZDBZ()">
-          <el-option v-for="item in bcbzList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          <el-option
+            v-for="item in bcbzList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
         </el-select>
       </el-col>
     </el-row>
 
     <el-row>
       <el-col :span="6">农作物补偿:</el-col>
-      <el-col :span="16"><el-input style="width: 100%" type="number" placeholder="请输入" 
-          v-model="curBCBZ.BCBZ.NZW"></el-input>
+      <el-col :span="16"
+        ><el-input
+          style="width: 100%"
+          type="number"
+          placeholder="请输入"
+          v-model="curBCBZ.BCBZ.NZW"
+        ></el-input>
       </el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>
     <el-row>
       <el-col :span="6">经济作物:</el-col>
       <el-col :span="16">
-        <el-input style="width: 100%" placeholder="请输入"  type="number" v-model="curBCBZ.BCBZ.JJZW"></el-input></el-col>
+        <el-input
+          style="width: 100%"
+          placeholder="请输入"
+          type="number"
+          v-model="curBCBZ.BCBZ.JJZW"
+        ></el-input
+      ></el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>
     <el-row>
       <el-col :span="6">树木补偿:</el-col>
       <el-col :span="16">
-        <el-input style="width: 100%" placeholder="请输入"  type="number" v-model="curBCBZ.BCBZ.SM"></el-input></el-col>
+        <el-input
+          style="width: 100%"
+          placeholder="请输入"
+          type="number"
+          v-model="curBCBZ.BCBZ.SM"
+        ></el-input
+      ></el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>
     <el-row justify="center" type="flex">
@@ -34,7 +56,12 @@
       <el-button type="primary" @click="saveAs()">另存为</el-button>
       <el-button type="primary" @click="reset()">重置</el-button>
     </el-row>
-    <el-dialog title="标准名称设置" :modal="false" :visible.sync="dialogFormVisible" modal-append-to-body>
+    <el-dialog
+      title="标准名称设置"
+      :modal="false"
+      :visible.sync="dialogFormVisible"
+      modal-append-to-body
+    >
       <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
         <el-form-item label="名称" prop="name">
           <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
@@ -42,7 +69,9 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取消</el-button>
-        <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
+        <el-button type="primary" @click="submitForm('ruleForm')"
+          >确 定</el-button
+        >
       </div>
     </el-dialog>
   </div>
@@ -81,7 +110,7 @@ export default {
         BCBZ: {
           NZW: 0,
           JJZW: 0,
-          SM: 0
+          SM: 0,
         },
       },
     };
@@ -134,7 +163,6 @@ export default {
           NZW: item.BCBZ.NZW,
           JJZW: item.BCBZ.JJZW,
           SM: item.BCBZ.SM,
-
         },
       };
 
@@ -219,6 +247,9 @@ export default {
   color: #02a7f0;
   font-weight: 400;
 }
+.el-input >>> .el-input__inner {
+  text-align: right !important;
+}
 
 /* .el -input>input, .el-select-dropdown, .el-textarea>textarea
 {
@@ -228,8 +259,7 @@ export default {
     text-align: center;
 
 } */
-.el-input__inner
-{
-   text-align: end;
+.el-input__inner {
+  text-align: end;
 }
 </style>

+ 40 - 13
src/views/ConstructionApplication3D/Demolition/QMShowInfo.vue

@@ -5,28 +5,48 @@
       <el-col :span="6">青苗补偿标准:</el-col>
       <el-col :span="18">
         <el-select v-model="bcbz" style="width: 90%" @change="selectZDBZ()">
-          <el-option v-for="item in bcbzList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          <el-option
+            v-for="item in bcbzList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
         </el-select>
       </el-col>
     </el-row>
 
     <el-row>
       <el-col :span="6">农作物补偿:</el-col>
-      <el-col :span="16"><el-input style="width: 100%"  placeholder="请输入" readonly
-          v-model="curBCBZ.BCBZ.NZW"></el-input>
+      <el-col :span="16"
+        ><el-input
+          style="width: 100%"
+          placeholder="请输入"
+          readonly
+          v-model="curBCBZ.BCBZ.NZW"
+        ></el-input>
       </el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>
     <el-row>
       <el-col :span="6">经济作物:</el-col>
       <el-col :span="16">
-        <el-input style="width: 100%;" placeholder="请输入" v-model="curBCBZ.BCBZ.JJZW" ></el-input></el-col>
+        <el-input
+          style="width: 100%"
+          placeholder="请输入"
+          v-model="curBCBZ.BCBZ.JJZW"
+        ></el-input
+      ></el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>
     <el-row>
       <el-col :span="6">树木补偿:</el-col>
       <el-col :span="16">
-        <el-input style="width: 100%;text-align:right;" placeholder="请输入" v-model="curBCBZ.BCBZ.SM"></el-input></el-col>
+        <el-input
+          style="width: 100%; text-align: right"
+          placeholder="请输入"
+          v-model="curBCBZ.BCBZ.SM"
+        ></el-input
+      ></el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>
     <!-- <el-row justify="center" type="flex">
@@ -34,7 +54,12 @@
       <el-button type="primary" @click="saveAs()">另存为</el-button>
       <el-button type="primary" @click="reset()">重置</el-button>
     </el-row> -->
-    <el-dialog title="标准名称设置" modal="false" :visible.sync="dialogFormVisible" modal-append-to-body>
+    <el-dialog
+      title="标准名称设置"
+      modal="false"
+      :visible.sync="dialogFormVisible"
+      modal-append-to-body
+    >
       <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
         <el-form-item label="名称" prop="name">
           <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
@@ -42,7 +67,9 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取消</el-button>
-        <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
+        <el-button type="primary" @click="submitForm('ruleForm')"
+          >确 定</el-button
+        >
       </div>
     </el-dialog>
   </div>
@@ -81,7 +108,7 @@ export default {
         BCBZ: {
           NZW: 0,
           JJZW: 0,
-          SM: 0
+          SM: 0,
         },
       },
     };
@@ -134,7 +161,6 @@ export default {
           NZW: item.BCBZ.NZW,
           JJZW: item.BCBZ.JJZW,
           SM: item.BCBZ.SM,
-
         },
       };
 
@@ -228,9 +254,10 @@ export default {
     text-align: center;
 
 } */
-.el-input__inner
-{
-   text-align: end;
+.el-input__inner {
+  text-align: end;
+}
+.el-input >>> .el-input__inner {
+  text-align: right !important;
 }
-
 </style>

+ 11 - 7
src/views/ConstructionApplication3D/Demolition/ZDSetInfo.vue

@@ -58,7 +58,8 @@
       <el-col :span="16">
         <el-input
           placeholder="自动计算"
-          readonly    type="number"
+          readonly
+          type="number"
           v-model="curBCBZ.BCBZ.TDBCF"
         ></el-input
       ></el-col>
@@ -87,7 +88,8 @@
       <el-col :span="16"
         ><el-input
           v-model="curBCBZ.BCBZ.AZBCF"
-          readonly    type="number"
+          readonly
+          type="number"
           placeholder="自动计算"
         ></el-input
       ></el-col>
@@ -104,7 +106,8 @@
       <el-col :span="16"
         ><el-input
           v-model="curBCBZ.BCBZ.BCHJ"
-          readonly    type="number"
+          readonly
+          type="number"
           placeholder="自动计算"
         ></el-input
       ></el-col>
@@ -365,7 +368,9 @@ export default {
   color: #02a7f0;
   font-weight: 400;
 }
-
+.el-input >>> .el-input__inner {
+  text-align: right !important;
+}
 /* .el -input>input, .el-select-dropdown, .el-textarea>textarea
 {
     color: #fff !important;
@@ -374,8 +379,7 @@ export default {
     text-align: center;
 
 } */
-.el-input__inner
-{
-   text-align: end;
+.el-input__inner {
+  text-align: end;
 }
 </style>

+ 21 - 7
src/views/ConstructionApplication3D/Demolition/ZDShowInfo.vue

@@ -4,6 +4,7 @@
       <el-col :span="6">征地补偿标准:</el-col>
       <el-col :span="18">
         <el-select
+          size="mini"
           v-model="bcbz"
           style="width: 90%"
           @change="selectZDBZ"
@@ -25,6 +26,8 @@
       <el-col :span="6">土地年产值:</el-col>
       <el-col :span="16"
         ><el-input
+          controls-position="right"
+          size="mini"
           style="width: 100%"
           type="number"
           placeholder="请输入"
@@ -44,6 +47,7 @@
       <el-col :span="6">综合补偿倍数:</el-col>
       <el-col :span="16"
         ><el-input
+          size="mini"
           style="width: 100%"
           type="number"
           placeholder="请输入"
@@ -56,8 +60,10 @@
       <el-col :span="6">土地补偿费:</el-col>
       <el-col :span="16">
         <el-input
+          size="mini"
           placeholder="自动计算"
-          readonly    type="number"
+          readonly
+          type="number"
           v-model="curBCBZ.BCBZ.TDBCF"
         ></el-input
       ></el-col>
@@ -73,7 +79,8 @@
       <el-col :span="6">综合补偿倍数</el-col>
       <el-col :span="16"
         ><el-input
-          type="number"    
+          size="mini"
+          type="number"
           style="width: 100%"
           placeholder="请输入"
           v-model="curBCBZ.BCBZ.AZBCBS"
@@ -85,8 +92,10 @@
       <el-col :span="6">安置补偿费:</el-col>
       <el-col :span="16"
         ><el-input
+          size="mini"
           v-model="curBCBZ.BCBZ.AZBCF"
-          readonly    type="number"
+          readonly
+          type="number"
           placeholder="自动计算"
         ></el-input
       ></el-col>
@@ -102,8 +111,10 @@
       <el-col :span="6">征地补偿合计:</el-col>
       <el-col :span="16"
         ><el-input
+          size="mini"
           v-model="curBCBZ.BCBZ.BCHJ"
-          readonly    type="number"
+          readonly
+          type="number"
           placeholder="自动计算"
         ></el-input
       ></el-col>
@@ -204,8 +215,11 @@ export default {
   color: #02a7f0;
   font-weight: 400;
 }
-.el-input__inner
-{
-   text-align: end;
+/* .el-input > input {
+  text-align: end;
+} */
+
+.el-input >>> .el-input__inner {
+  text-align: right !important;
 }
 </style>

+ 194 - 10
src/views/ConstructionApplication3D/SunlightAnalysis/SunlightAnalysis.vue

@@ -73,7 +73,7 @@
             ></el-input-number>
           </el-col>
         </el-row> -->
-        <el-row :gutter="10">
+        <!-- <el-row :gutter="10">
           <el-col :span="12" style="text-align: center">
             X坐标(度):
             <el-input-number
@@ -92,9 +92,9 @@
               @change="XYChange"
             ></el-input-number>
           </el-col>
-        </el-row>
+        </el-row> -->
 
-        <el-row :gutter="10">
+        <!-- <el-row :gutter="10">
           <el-col :span="12">
             底部高程(米):
             <el-input-number
@@ -111,7 +111,7 @@
               v-model="form.extrudeHeight"
             ></el-input-number>
           </el-col>
-        </el-row>
+        </el-row> -->
         <el-row :gutter="10">
           <el-col :span="24">
             阴影分析时日照时间案范围重合时为时刻阴影,不重合时计算为时间范围内阴影率
@@ -134,17 +134,36 @@
       <el-button size="mini" type="primary" @click="onSubmit"
         >日照时长分析</el-button
       >
+      <el-tooltip
+        effect="dark"
+        content="日照时长结果生成后,调整地图到合适位置,然后导出"
+        placement="top"
+      >
+        <el-button
+          size="mini"
+          type="primary"
+          :disabled="sdh.length == 0 ? true : false"
+          @click="ExportResult"
+          >导出结果</el-button
+        >
+      </el-tooltip>
+
       <el-button size="mini" @click="resetForm">清除</el-button>
     </div>
     <el-row :gutter="10">
       <el-col :span="24">
-        <el-descriptions v-for="item in sdh" :key="item">
-          <el-descriptions-item :label="item.scS + '-' + item.scE + '小时'"
-            ><span
-              style="width: 100%; height: 100%"
+        <el-descriptions border size="mini" :column="2">
+          <el-descriptions-item
+            v-for="item in sdh"
+            :key="item"
+            :label="item.scS + '-' + item.scE + '小时'"
+            ><div
+              style="width: 4.5rem; height: 100%"
               :style="{ 'background-color': item.fill }"
-            ></span
-          ></el-descriptions-item>
+            >
+              &nbsp;
+            </div>
+          </el-descriptions-item>
         </el-descriptions>
       </el-col>
     </el-row>
@@ -179,6 +198,7 @@ import {
   point,
   buffer,
   bboxPolygon,
+  bbox,
   square,
   destination,
   polygon,
@@ -188,6 +208,14 @@ import {
   isolines,
   pointGrid,
 } from "@turf/turf";
+import {
+  cartesian3ToWGS84,
+  mapQuery,
+  flatten,
+  mercator2lonLat,
+  undergroundMode,
+} from "@/utils/MapHelper/MapHelper.js";
+import { v4 as uuidv4 } from "uuid";
 export default {
   data() {
     return {
@@ -223,6 +251,7 @@ export default {
       tableData: [],
       multiViewportMode: 0,
       radio: 0,
+      eids: [],
     };
   },
   props: {
@@ -469,7 +498,11 @@ export default {
 
               element.geometry.coordinates.forEach((polygon) => {
                 let ps = polygon[0].flat();
+                debugger;
+                let id = uuidv4();
+                that.eids.push(id);
                 viewer.entities.add({
+                  id: id,
                   polygon: {
                     hierarchy: Cesium.Cartesian3.fromDegreesArray(ps),
                     material: new Cesium.Color.fromCssColorString(
@@ -479,6 +512,7 @@ export default {
                     outline: true,
                     outlineColor: Cesium.Color.BLACK,
                     outlineWidth: 2.0,
+                    // classificationType: Cesium.ClassificationType.TERRAIN,
                   },
                 });
               });
@@ -545,7 +579,107 @@ export default {
         // that.resetForm();
       });
     },
+    ExportResult() {
+      let that = this;
+      let entitys = [];
+      that.eids.forEach((id) => {
+        let entity = viewer.entities.getById(id);
+        if (entity) {
+          entitys.push(entity);
+        }
+      });
+
+      //版本缺陷无法使用俯仰角
+      // viewer.flyTo(entitys, {
+      //   options: {
+      //     offset: new Cesium.HeadingPitchRange(
+      //       0,
+      //       Cesium.Math.toRadians(-180),
+      //       1000
+      //     ),
+      //   },
+      // });
+
+      let box = that.squarePolygon(entitys);
+      viewer.camera.flyTo({
+        destination: Cesium.Rectangle.fromDegrees(
+          box[0][0] + 0.0002,
+          box[0][1] - 0.0002,
+          box[2][0] - 0.0002,
+          box[2][1] + 0.0002
+        ),
+      });
 
+      setTimeout(function () {
+        var promise = scene.outputSceneToFile();
+        Cesium.when(promise, function (base64data) {
+          that.download(base64data);
+        });
+      }, 4000);
+    },
+    /**
+     * 根据图片生成画布
+     */
+    convertImageToCanvas(image) {
+      var canvas = document.createElement("canvas");
+      canvas.width = image.width;
+      canvas.height = image.height;
+      var ctx = canvas.getContext("2d");
+      ctx.drawImage(image, 0, 0);
+      this.drawLegends(canvas, ctx);
+      return canvas;
+    },
+    // 绘制图例
+    drawLegends(canvas, ctx) {
+      var legends = this.sdh;
+      var padding = 10; // 图例与边缘的间距
+      var lineHeight = 30; // 每行图例的高度
+      var labW = 120;
+      var x = canvas.width - padding - labW; // 图例的起始X坐标
+      var y = canvas.height - legends.length * lineHeight - padding; // 图例的起始Y坐标
+      // 绘制颜色块
+      ctx.fillStyle = "#ffffff";
+      ctx.fillRect(
+        x - padding,
+        y - padding,
+        canvas.width - x + padding,
+        canvas.height - y + padding
+      );
+      legends.forEach(function (legend, index) {
+        // 绘制文本
+        ctx.fillStyle = "black";
+        ctx.fillText(
+          legend.scS + "-" + legend.scE + "小时",
+          x,
+          y + index * lineHeight + lineHeight / 2
+        );
+        // 绘制颜色块
+        ctx.fillStyle = legend.fill;
+        ctx.fillRect(
+          x + (labW / 3) * 2,
+          y + index * lineHeight,
+          30,
+          lineHeight
+        );
+      });
+    },
+    /**
+     * 下载图片
+     */
+    download(base64data) {
+      let that = this;
+      var image = new Image();
+      image.src = base64data;
+      image.onload = function () {
+        var canvas = that.convertImageToCanvas(image);
+        var url = canvas.toDataURL("image/jpeg");
+        var a = document.createElement("a");
+        var event = new MouseEvent("click");
+        a.download = new Date().getTime() + ".jpg"; // 指定下载图片的名称
+        a.href = url;
+        a.dispatchEvent(event); // 触发超链接的点击事件
+      };
+    },
     clear() {
       viewer.entities.removeAll();
       this.form.x = 0;
@@ -565,6 +699,7 @@ export default {
       this.points = [];
 
       this.sdh = [];
+      this.eids = [];
     },
     //结束时日照阴影
     setCurrentTime() {
@@ -713,6 +848,55 @@ export default {
 
       return intersection;
     },
+    /**
+     * 计算边界
+     */
+    squarePolygon(entitys) {
+      const polygons = [
+        /* ... 多边形数组 ... */
+      ];
+      entitys.forEach((entity) => {
+        let positions = entity.polygon.hierarchy.getValue().positions;
+        let posts = [];
+        positions.forEach((position) => {
+          let xy = cartesian3ToWGS84(position);
+          posts.push([xy.lng, xy.lat]);
+        });
+        let thispolygon = polygon([posts]);
+        polygons.push(thispolygon);
+      });
+
+      // 初始化边界框变量
+      let minX = Infinity,
+        minY = Infinity,
+        maxX = -Infinity,
+        maxY = -Infinity;
+
+      // 遍历每个多边形,计算其边界框,并更新最小/最大坐标
+      polygons.forEach((polygon) => {
+        const thisbbox = bbox(polygon);
+        minX = Math.min(minX, thisbbox[0]);
+        minY = Math.min(minY, thisbbox[1]);
+        maxX = Math.max(maxX, thisbbox[2]);
+        maxY = Math.max(maxY, thisbbox[3]);
+      });
+
+      // 计算正方形的边长
+      const sideLength = Math.max(maxX - minX, maxY - minY);
+
+      // 创建正方形的四个角点
+      const squareCoords = [
+        [minX, minY],
+        [minX + sideLength, minY],
+        [minX + sideLength, minY + sideLength],
+        [minX, minY + sideLength],
+        [minX, minY], // 闭合多边形
+      ];
+
+      // // 使用Turf.js创建正方形多边形
+      // const squarePolygon = polygon([squareCoords]);
+      return squareCoords;
+    },
   },
   watch: {
     "form.selDate": function (newValue) {

+ 48 - 0
src/views/ConstructionApplication3D/billboard/billboardDesign.vue

@@ -97,6 +97,8 @@ import addbillboardProject from "@/views/ConstructionApplication3D/billboard/add
 import billboarddetail from "@/views/ConstructionApplication3D/billboard/billboarddetail.vue";
 import billboardCheck from "@/views/ConstructionApplication3D/billboard/billboardCheckList.vue";
 import addBiillboardModel from "@/views/ConstructionApplication3D/billboard/addBiillboardModel.vue";
+import billboarddetailInfo from "@/views/ConstructionApplication3D/billboard/billboarddetailInfo.vue";
+
 import lodash from "lodash-es";
 let entityList = [];
 export default {
@@ -110,10 +112,13 @@ export default {
       checklLayerId: null,
       addlLayerId: null,
       // entityList: [],
+      //点查entities事件
+      getEntitiesHandler: null,
     };
   },
   computed: {},
   mounted() {
+    this.initEntitiesHandler();
     // this.init();
     let that = this;
     var promisse11w = scene.open(window.billboardModelLT.url);
@@ -417,6 +422,49 @@ export default {
         },
       });
     },
+
+    initEntitiesHandler() {
+      let that = this;
+      this.getEntitiesHandler = new Cesium.ScreenSpaceEventHandler(
+        scene.canvas
+      );
+      this.getEntitiesHandler.setInputAction(function (click) {
+        var pick = viewer.scene.pick(click.position);
+        //广告牌信息弹窗
+        if (pick && pick.id.id && pick.id.id.indexOf("billboard") !== -1) {
+          let id = pick.id.id.split("billboard_")[1];
+          let info = window.billboardModelList.find((c) => c.id == id);
+          that.openOBJInfo("广告牌信息详情", info);
+        }
+      }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+    },
+    //打开广告牌信息弹窗
+    openOBJInfo(title, info) {
+      let w = document.body.offsetWidth;
+      let h = document.body.offsetHeight;
+      //左上角(left=弹窗宽/2;top=弹窗高/2+header高)
+      //右上角 (left=w-弹窗宽+(弹窗宽/2);top=弹窗高/2+header高);
+      let left = 430 / 2 + 556;
+      let top = 430 / 2 + 60;
+      this.OBJInfolayerid = this.$layer.iframe({
+        id: "GGPMXXQ",
+        content: {
+          content: billboarddetailInfo, //传递的组件对象
+          parent: this, //当前的vue对象
+          data: { info }, //props
+        },
+        offset: [left, top], //left top
+        area: ["430px", "430px"], //宽 高
+        title: title,
+        maxmin: false,
+        shade: false, //是否显示遮罩
+        shadeClose: false, //点击遮罩是否关闭
+        cancel: () => {
+          //关闭事件
+          // alert("关闭iframe");
+        },
+      });
+    },
     //删除一个广告范围
     removeProjectScope(item) {
       if (item) {

+ 79 - 0
src/views/ConstructionApplication3D/billboard/billboarddetailInfo.vue

@@ -0,0 +1,79 @@
+<template>
+  <div
+    class="ZTGlobal"
+    style="width: 100%; padding: 1rem 1rem 0rem 1rem; color: white"
+  >
+    <el-row :gutter="10">
+      <el-col :span="24">
+        <el-descriptions column="1">
+          <el-descriptions-item label="模型名称">{{
+            info.billboardName
+          }}</el-descriptions-item>
+          <el-descriptions-item label="模型类型">{{
+            info.billboardType
+          }}</el-descriptions-item>
+          <el-descriptions-item label="X坐标(度)">{{
+            info.x
+          }}</el-descriptions-item>
+          <el-descriptions-item label="Y坐标(度)">{{
+            info.y
+          }}</el-descriptions-item>
+          <el-descriptions-item label="Z坐标(度)">{{
+            info.z
+          }}</el-descriptions-item>
+          <el-descriptions-item label="长(米)">{{
+            info.xL
+          }}</el-descriptions-item>
+          <el-descriptions-item label="宽/高(米)">{{
+            info.yL
+          }}</el-descriptions-item>
+          <el-descriptions-item label="厚度(米)">{{
+            info.zL
+          }}</el-descriptions-item>
+        </el-descriptions>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  props: {
+    info: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+    layerid: {
+      type: String,
+      default: "",
+    },
+    lydata: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+    lyoption: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  computed: {},
+  mounted() {
+    let sd = this.info;
+    debugger;
+    // this.init();
+  },
+  methods: {},
+};
+</script>
+<style lang="scss">
+@import "@/../../zt.scss";
+</style>

+ 14 - 3
static/Config/config.js

@@ -2146,7 +2146,7 @@ window.ZSBC = {
   /**征地补偿标准 */
   ZDBCList: [
     {
-      label: "征地标准2023",
+      label: "征地标准2013",
       value: "1",
       BCBZ: {
         /**
@@ -2180,7 +2180,7 @@ window.ZSBC = {
   /**拆迁补偿标准 */
   CQBCList: [
     {
-      label: "拆迁补偿标准2023",
+      label: "拆迁补偿标准2013",
       value: "1",
       BCBZ: [
         {
@@ -2294,7 +2294,7 @@ window.ZSBC = {
   /**青苗补偿标准 */
   QMBCList: [
     {
-      label: "青苗补偿标准2023",
+      label: "青苗补偿标准2013",
       value: "1",
       BCBZ: {
         //农作物
@@ -2440,6 +2440,17 @@ window.ZSBC = {
  * 灯光文件地址
  */
 window.NightLightUrl = {
+  //规划模型
+  ghmx: "BaoPo@Baopo0723",
+  //道路
+  road: "Road@Baopo0723",
+  //地形
+  dixing: "DiXing@Baopo0723",
+  //体育场
+  tyc: "TYC@Baopo0723",
+  //体育馆
+  tyg: "TYCB@Baopo0723",
+  //道路流动线
   //道路流动线
   dlzxx: {
     url: "static/data/道路中线_1.json",