gjy 4 years ago
parent
commit
d14466ade0

+ 6 - 3
src/lang/zh.js

@@ -480,9 +480,10 @@
     // 合同管理
     contractManagement: '合同管理',
     purchaseContract: '采购合同',
-    salesContract: '销售合同'
-    ,
+    salesContract: '销售合同',
+    salesContractEdit: '销售合同编辑',
     salesContractExamine: '销售合同查看',
+    purchaseContractExamine: '采购合同查看',
     // 采购模块
     procurement: '采购管理',
     sparepart: '备件采购',
@@ -4650,7 +4651,9 @@
   // 合同管理
   sales: {
     salesContract: '销售合同',
-    salesContractExamine: '销售合同查看'
+    salesContractEdit: '销售合同编辑',
+    salesContractExamine: '销售合同查看',
+    purchaseContractExamine: '采购合同查看',
   },
   purchase: {
     purchaseContract: '采购合同',

+ 209 - 150
src/layout/index/top/index.vue

@@ -1,12 +1,12 @@
 <template>
-  <div class="winseaview-top"
-       id="winseaview-top">
+  <div class="winseaview-top" id="winseaview-top">
     <div class="top-bar__left">
       <!-- 伸缩icon -->
-      <div class="winseaview-breadcrumb"
-           :class="[{ 'winseaview-breadcrumb--active': isCollapse }]">
-        <i class="iconfont iconasideShowy"
-           @click="setCollapse"></i>
+      <div
+        class="winseaview-breadcrumb"
+        :class="[{ 'winseaview-breadcrumb--active': isCollapse }]"
+      >
+        <i class="iconfont iconasideShowy" @click="setCollapse"></i>
       </div>
       <!-- </div>
     <div class="top-bar__title"> -->
@@ -16,113 +16,130 @@
         <bread-crumb v-if="!showMenu" />
         <smallTips v-if="showTooltip" />
       </div>
-      <span class="top-bar__item"
-            v-if="showSearch">
+      <span class="top-bar__item" v-if="showSearch">
         <top-search></top-search>
       </span>
     </div>
     <div class="top-bar__right">
       <!-- 使用租户 -->
-      <div v-if="getDay"
-           class="right-menu-item hover-effect dayClass">{{$t('common.trialDays')}}
-        <span style="padding:0 2px">{{getDay}}</span>{{$t('common.days')}}
+      <div v-if="getDay" class="right-menu-item hover-effect dayClass">
+        {{ $t('common.trialDays') }}
+        <span style="padding: 0 2px">{{ getDay }}</span
+        >{{ $t('common.days') }}
       </div>
-      <el-tooltip v-if="showColor"
-                  effect="dark"
-                  :content="$t('navbar.color')"
-                  placement="bottom">
+      <el-tooltip
+        v-if="showColor"
+        effect="dark"
+        :content="$t('navbar.color')"
+        placement="bottom"
+      >
         <div class="top-bar__item">
           <top-color></top-color>
         </div>
       </el-tooltip>
 
-      <el-tooltip v-if="showTheme"
-                  effect="dark"
-                  :hide-after='1500'
-                  :content="$t('navbar.theme')"
-                  placement="bottom">
+      <el-tooltip
+        v-if="showTheme"
+        effect="dark"
+        :hide-after="1500"
+        :content="$t('navbar.theme')"
+        placement="bottom"
+      >
         <div class="top-bar__item top-bar__item--show">
           <top-theme></top-theme>
         </div>
       </el-tooltip>
 
-      <el-tooltip effect="dark"
+      <!-- <el-tooltip effect="dark"
                   :content="$t('navbar.language')"
                   placement="bottom">
         <div class="top-bar__item top-bar__item--show">
           <top-lang></top-lang>
         </div>
-      </el-tooltip>
-      <el-tooltip v-if="showFullScren"
-                  effect="dark"
-                  :content="isFullScren?$t('navbar.screenfull'):$t('navbar.screenfullF')"
-                  placement="bottom">
+      </el-tooltip> -->
+      <el-tooltip
+        v-if="showFullScren"
+        effect="dark"
+        :content="
+          isFullScren ? $t('navbar.screenfull') : $t('navbar.screenfullF')
+        "
+        placement="bottom"
+      >
         <div class="top-bar__item">
-          <i :class="isFullScren?'el-icon-full-screen':'el-icon-full-screen'"
-             @click="handleScreen"></i>
+          <i
+            :class="isFullScren ? 'el-icon-full-screen' : 'el-icon-full-screen'"
+            @click="handleScreen"
+          ></i>
         </div>
       </el-tooltip>
 
-      <img class="top-bar__img"
-           v-lazy="userInfo.avatar" />
+      <img class="top-bar__img" v-lazy="userInfo.avatar" />
       <el-dropdown>
         <span class="el-dropdown-link">
           <span>{{ userInfo.showRoleName }} : {{ userInfo.staffName }}</span>
           <i class="el-icon-arrow-down el-icon--right"></i>
         </span>
         <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item icon="el-icon-s-custom"
-                            @click.native="personalFlag = true">
-            {{$t('navbar.personalInformation')}}
+          <el-dropdown-item
+            icon="el-icon-s-custom"
+            @click.native="personalFlag = true"
+          >
+            {{ $t('navbar.personalInformation') }}
           </el-dropdown-item>
-          <el-dropdown-item icon="el-icon-s-promotion"
-                            @click.native="passwordFlag = true">
-            {{$t('navbar.uploadPsw')}}
+          <el-dropdown-item
+            icon="el-icon-s-promotion"
+            @click.native="passwordFlag = true"
+          >
+            {{ $t('navbar.uploadPsw') }}
           </el-dropdown-item>
           <!-- <el-dropdown-item>
             <router-link to="/info/index">{{$t('navbar.userinfo')}}</router-link>
           </el-dropdown-item> -->
-          <el-dropdown-item v-if="showSetting"
-                            icon="el-icon-s-tools"
-                            @click.native="settingDrawer=true">{{$t('navbar.layoutSetting')}}</el-dropdown-item>
-          <el-dropdown-item @click.native="logout"
-                            divided>{{$t('navbar.logOut')}}</el-dropdown-item>
+          <el-dropdown-item
+            v-if="showSetting"
+            icon="el-icon-s-tools"
+            @click.native="settingDrawer = true"
+            >{{ $t('navbar.layoutSetting') }}</el-dropdown-item
+          >
+          <el-dropdown-item @click.native="logout" divided>{{
+            $t('navbar.logOut')
+          }}</el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
     </div>
 
-    <topSetting v-model="settingDrawer"
-                @close="()=>settingDrawer=!settingDrawer" />
+    <topSetting
+      v-model="settingDrawer"
+      @close="() => (settingDrawer = !settingDrawer)"
+    />
 
     <!--个人信息-->
-    <WinseaContentModal v-model='personalFlag'
-                        :title="$t('navbar.personalInformation')">
-      <el-form ref="personalMsg"
-               :model="passwordMsg"
-               label-position="right"
-               label-width="150px">
-        <el-form-item :label="$t('login.name')"
-                      prop="originalPassword">
-          {{userInfo.staffName}}
+    <WinseaContentModal
+      v-model="personalFlag"
+      :title="$t('navbar.personalInformation')"
+    >
+      <el-form
+        ref="personalMsg"
+        :model="passwordMsg"
+        label-position="right"
+        label-width="150px"
+      >
+        <el-form-item :label="$t('login.name')" prop="originalPassword">
+          {{ userInfo.staffName }}
         </el-form-item>
-        <el-form-item :label="$t('login.account')"
-                      prop="newPassword">
-          {{account}}
+        <el-form-item :label="$t('login.account')" prop="newPassword">
+          {{ account }}
         </el-form-item>
-        <el-form-item :label="$t('login.phone')"
-                      prop="newPassword">
-          {{userInfo.staffMobilePhone}}
+        <el-form-item :label="$t('login.phone')" prop="newPassword">
+          {{ userInfo.staffMobilePhone }}
         </el-form-item>
-        <el-form-item :label="$t('login.role')"
-                      prop="newPassword">
-          {{userInfo.showRoleName}}
+        <el-form-item :label="$t('login.role')" prop="newPassword">
+          {{ userInfo.showRoleName }}
         </el-form-item>
-        <el-form-item :label="$t('login.dept')"
-                      prop="newPassword">
-          {{userInfo.deptName}}
+        <el-form-item :label="$t('login.dept')" prop="newPassword">
+          {{ userInfo.deptName }}
         </el-form-item>
-        <el-form-item :label="$t('login.company')"
-                      prop="newPassword">
+        <el-form-item :label="$t('login.company')" prop="newPassword">
           <div class="company-info">
             {{ userInfo.compName }}
           </div>
@@ -130,41 +147,52 @@
       </el-form>
     </WinseaContentModal>
     <!--修改密码-->
-    <WinseaContentModal v-model='passwordFlag'
-                        :title="$t('navbar.uploadPsw')">
-      <el-form ref="passwordMsg"
-               :model="passwordMsg"
-               :label-width="language == 'en'?'156px':'100px'"
-               :rules="passwordMsgRules">
-        <el-form-item :label="$t('login.originalPassword') + $t('common.colon')"
-                      prop="originalPassword">
-          <ws-input type="password"
-                    :placeholder="$t('login.message04')"
-                    v-model="passwordMsg.originalPassword"
-                    style="width: 318px;" />
+    <WinseaContentModal v-model="passwordFlag" :title="$t('navbar.uploadPsw')">
+      <el-form
+        ref="passwordMsg"
+        :model="passwordMsg"
+        :label-width="language == 'en' ? '156px' : '100px'"
+        :rules="passwordMsgRules"
+      >
+        <el-form-item
+          :label="$t('login.originalPassword') + $t('common.colon')"
+          prop="originalPassword"
+        >
+          <ws-input
+            type="password"
+            :placeholder="$t('login.message04')"
+            v-model="passwordMsg.originalPassword"
+            style="width: 318px"
+          />
         </el-form-item>
-        <el-form-item :label="$t('login.newPassword') + $t('common.colon')"
-                      prop="newPassword">
-          <ws-input type="password"
-                    v-model="passwordMsg.newPassword"
-                    :placeholder="$t('login.verification01')"
-                    style="width: 318px;" />
+        <el-form-item
+          :label="$t('login.newPassword') + $t('common.colon')"
+          prop="newPassword"
+        >
+          <ws-input
+            type="password"
+            v-model="passwordMsg.newPassword"
+            :placeholder="$t('login.verification01')"
+            style="width: 318px"
+          />
         </el-form-item>
-        <el-form-item :label="$t('login.confirmPassword') + $t('common.colon')"
-                      prop="password">
-          <ws-input type="password"
-                    v-model="passwordMsg.password"
-                    :placeholder="$t('login.verification01')"
-                    style="width: 318px;" />
+        <el-form-item
+          :label="$t('login.confirmPassword') + $t('common.colon')"
+          prop="password"
+        >
+          <ws-input
+            type="password"
+            v-model="passwordMsg.password"
+            :placeholder="$t('login.verification01')"
+            style="width: 318px"
+          />
         </el-form-item>
       </el-form>
-      <span slot="footer"
-            class="dialog-footer">
+      <span slot="footer" class="dialog-footer">
         <ws-button @click="passwordFlag = false">{{
           $t('showMessage.cancel')
         }}</ws-button>
-        <ws-button type="primary"
-                   @click="savePassword('passwordMsg')">{{
+        <ws-button type="primary" @click="savePassword('passwordMsg')">{{
           $t('showMessage.confirm')
         }}</ws-button>
       </span>
@@ -173,16 +201,16 @@
 </template>
 <script>
 import { changePasswordByPwd } from '@/model/indexRx'
-import { mapActions, mapGetters, mapState } from 'vuex';
-import { fullscreenToggel, listenfullscreen } from '@/utils/util';
-import topMenu from './top-menu';
-import topSearch from './top-search';
-import topTheme from './top-theme';
-import topColor from './top-color';
-import topNotice from './top-notice';
-import topLang from './top-lang';
-import topSetting from './top-setting';
-import breadCrumb from '@/components/Breadcrumb';
+import { mapActions, mapGetters, mapState } from 'vuex'
+import { fullscreenToggel, listenfullscreen } from '@/utils/util'
+import topMenu from './top-menu'
+import topSearch from './top-search'
+import topTheme from './top-theme'
+import topColor from './top-color'
+import topNotice from './top-notice'
+import topLang from './top-lang'
+import topSetting from './top-setting'
+import breadCrumb from '@/components/Breadcrumb'
 import { EventBus } from 'base-core-lib'
 import { validPassword } from '@/utils/validate'
 import smallTips from '@/components/WinseaCom/smallTips'
@@ -213,10 +241,10 @@ export default {
     topLang,
     topSetting,
     breadCrumb,
-    smallTips
+    smallTips,
   },
   name: 'top',
-  data () {
+  data() {
     return {
       showList: [
         'maintenancePlanList',
@@ -230,7 +258,7 @@ export default {
         'maApplicationAdd',
         'maApplicationEdit',
         'maApplicationLabel',
-        'monthContrastList'
+        'monthContrastList',
       ],
       settingDrawer: false,
       personalFlag: false,
@@ -241,21 +269,21 @@ export default {
           {
             required: true,
             trigger: 'blur',
-            validator: validPasswordRule.bind(this)
-          }
+            validator: validPasswordRule.bind(this),
+          },
         ],
         password: [
           {
             required: true,
             trigger: 'blur',
-            validator: validPasswordRule2.bind(this)
-          }
-        ]
+            validator: validPasswordRule2.bind(this),
+          },
+        ],
       },
       passwordMsg: {
         originalPassword: '', // 原始密码
         newPassword: '', // 新密码
-        password: '' // 二次输入密码
+        password: '', // 二次输入密码
       },
       // roleName: '',
       // phone: '',
@@ -265,27 +293,27 @@ export default {
       // staffName: '',
       account: sessionStorage.getItem('ws-pf_account'),
       // compName: '',
-      companyId: sessionStorage.getItem('ws-pf_compId')
-    };
+      companyId: sessionStorage.getItem('ws-pf_compId'),
+    }
   },
   filters: {},
-  created () {
+  created() {
     // this.getUserInfo()
   },
-  mounted () {
-    listenfullscreen(this.setScreen);
+  mounted() {
+    listenfullscreen(this.setScreen)
   },
   computed: {
     ...mapState({
-      showDebug: state => state.commonStore.showDebug,
-      showTheme: state => state.commonStore.showTheme,
-      showLock: state => state.commonStore.showLock,
-      showFullScren: state => state.commonStore.showFullScren,
-      showCollapse: state => state.commonStore.showCollapse,
-      showSearch: state => state.commonStore.showSearch,
-      showSetting: state => state.commonStore.showSetting,
-      showMenu: state => state.commonStore.showMenu,
-      showColor: state => state.commonStore.showColor
+      showDebug: (state) => state.commonStore.showDebug,
+      showTheme: (state) => state.commonStore.showTheme,
+      showLock: (state) => state.commonStore.showLock,
+      showFullScren: (state) => state.commonStore.showFullScren,
+      showCollapse: (state) => state.commonStore.showCollapse,
+      showSearch: (state) => state.commonStore.showSearch,
+      showSetting: (state) => state.commonStore.showSetting,
+      showMenu: (state) => state.commonStore.showMenu,
+      showColor: (state) => state.commonStore.showColor,
     }),
     ...mapGetters([
       'userInfo',
@@ -296,39 +324,41 @@ export default {
       'tag',
       'logsLen',
       'logsFlag',
-      'language'
+      'language',
     ]),
-    getDay () {
-      const { statusFlag = -1, daysRemaining } = JSON.parse(sessionStorage.getItem('ws_login_getTenantInfoByUser')) || {}
+    getDay() {
+      const { statusFlag = -1, daysRemaining } =
+        JSON.parse(sessionStorage.getItem('ws_login_getTenantInfoByUser')) || {}
       return statusFlag * 1 === 2 ? daysRemaining + '' : ''
     },
-    showTooltip () {
+    showTooltip() {
       return this.showList.indexOf(this.$route.name) > -1 && !this.showMenu
-    }
+    },
   },
   methods: {
     ...mapActions('common', ['setLocalVessels']),
-    handleScreen () {
-      fullscreenToggel();
+    handleScreen() {
+      fullscreenToggel()
     },
-    setCollapse () {
-      this.$store.commit('SET_COLLAPSE');
+    setCollapse() {
+      this.$store.commit('SET_COLLAPSE')
     },
-    setScreen () {
-      this.$store.commit('SET_FULLSCREN');
+    setScreen() {
+      this.$store.commit('SET_FULLSCREN')
     },
-    cancelPaw () {
+    cancelPaw() {
       this.$refs.passwordMsg.resetFields()
     },
     // 修改管理员密码
-    savePassword (formName) {
-      this.$refs[formName].validate(valid => {
+    savePassword(formName) {
+      this.$refs[formName].validate((valid) => {
         if (valid) {
           const data = {
             originalPassword: this.passwordMsg.originalPassword,
-            password: this.passwordMsg.password
+            password: this.passwordMsg.password,
           }
-          changePasswordByPwd(data).toPromise()
+          changePasswordByPwd(data)
+            .toPromise()
             .then(() => {
               EventBus.$emit('success', this.$t('message.updateMessage'))
               this.passwordFlag = false
@@ -347,14 +377,14 @@ export default {
     //   this.roleId = this.userInfo.showRoleId
     //   this.compName = this.userInfo.compName
     // },
-    toggleSideBar () {
+    toggleSideBar() {
       this.$store.dispatch('app/toggleSideBar')
     },
-    logout () {
+    logout() {
       this.$confirm(this.$t('logoutTip'), this.$t('tip'), {
         confirmButtonText: this.$t('submitText'),
         cancelButtonText: this.$t('cancelText'),
-        type: 'warning'
+        type: 'warning',
       }).then(async () => {
         sessionStorage.removeItem('ws-pf_roleName')
         sessionStorage.removeItem('ws-pf_roleId')
@@ -369,13 +399,42 @@ export default {
         this.$router.push(
           process.env.VUE_APP_PACKAGE_ENV === 'ship' ? '/ship_login' : '/login'
         )
-      });
-    }
-  }
-};
+      })
+    },
+  },
+}
 </script>
 
 <style lang="scss" scoped>
+.taskType {
+  width: 100%;
+  background-color: #fff;
+  margin-top: 2px;
+  margin-bottom: 10px;
+  // padding-bottom: 20px;
+  li {
+    float: left;
+    border: 1px solid #6ea0f3;
+    border-radius: 5px;
+    max-width: 190px;
+    padding: 0 5px;
+    text-align: center;
+    margin-top: 20px;
+    margin-left: 20px;
+    cursor: pointer;
+    font-size: 14px;
+    p {
+      margin: 8px 0px;
+      span {
+        color: #e74c3c;
+      }
+    }
+  }
+  li:hover {
+    background-color: #e4eeff;
+    color: #1d6ced;
+  }
+}
 .dayClass {
   font-size: 14px !important;
   span {

+ 31 - 0
src/views/contractManagement/component/routers/route.js

@@ -40,6 +40,21 @@ const contractManagementRouter = {
         keepAlive: true
       }
     },
+    {
+      path: 'purchaseContractExamine',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/purchaseContractExamine'),
+      name: 'purchaseContractExamine',
+      meta: {
+        title: 'salesContractExamine',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract.purchaseContractExamine',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
     {
       path: 'salesContractExamine',
       component: () =>
@@ -54,7 +69,23 @@ const contractManagementRouter = {
         // module: 'procurement.sparepart.applDetail'
       },
       hidden: true
+    },
+    {
+      path: 'salesContractEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/salesContractEdit'),
+      name: 'salesContractEdit',
+      meta: {
+        title: 'salesContractEdit',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract.salesContractEdit',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
     }
+
   ],
 
 };

+ 39 - 127
src/views/contractManagement/purchaseContract.vue

@@ -2,13 +2,42 @@
 <!--2019年5月30日 20:25:16 by jlx-->
 <template>
   <div>
-    <!-- 弹出页面-审核通过 -->
-    <BaseContentModalScrap
-      v-model="dialogApproveFormVisible"
-      :title="$t('common.opinion')"
-      :isRules="false"
-      @confirm="approve"
-    />
+    <el-table :data="tableData" style="width: 100%">
+      <el-table-column type="index" />
+      <el-table-column prop="date" label="合同编号" width="80">
+      </el-table-column>
+      <el-table-column prop="name" label="货名" width="80"> </el-table-column>
+      <el-table-column prop="address" label="品级"> </el-table-column>
+      <el-table-column prop="address" label="重量(吨)"> </el-table-column>
+      <el-table-column prop="address" label="合同单价(元)"> </el-table-column>
+      <el-table-column prop="address" label="包装方式"> </el-table-column>
+      <el-table-column prop="address" label="买方"> </el-table-column>
+      <el-table-column prop="address" label="卖方"> </el-table-column>
+      <el-table-column prop="address" label="已完成(吨)"> </el-table-column>
+      <el-table-column prop="address" label="状态"> </el-table-column>
+      <el-table-column prop="address" label="签订日期"> </el-table-column>
+      <el-table-column prop="address" label="已付款(元)"> </el-table-column>
+      <el-table-column prop="address" label="附件"> </el-table-column>
+      <el-table-column prop="address" label="操作" width="300">
+        <template slot-scope="scope">
+          <el-button
+            type="success"
+            size="small"
+            @click="handleExamine(scope.row)"
+            >查看</el-button
+          >
+          <el-button
+            type="primary"
+            size="small"
+            @click="handleUpdate(scope.row)"
+            >编辑</el-button
+          >
+          <el-button type="danger" size="small" @click="handleDelete(scope.row)"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
   </div>
 </template>
 <script>
@@ -39,7 +68,7 @@ export default {
       year: '',
       // 提交类型
       submitType: true,
-      tableData: [],
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
     }
   },
   created() {
@@ -49,126 +78,9 @@ export default {
     this.showType = this.isShow
   },
   methods: {
-    // 获得船舶对象
-    getVesselData() {
-      getVesselOne({
-        vesselId: this.vesselId,
-      })
-        .toPromise()
-        .then((succ) => {
-          this.monetaryKey = succ.manageTypeKey
-          if (!this.monetaryKey) {
-            // this.monetaryKey = "1";
-            this.showType = false
-          }
-        })
-        .catch((error) => {
-          console.log(error)
-        })
+    handleExamine(row) {
+      this.$router.push({ path: 'purchaseContractExamine' })
     },
-    // 行文字颜色控制
-    tableRowClassName(row) {
-      if (this.monetaryKey == 4) {
-        if (row.row.remainingAmountAterPurchase < 0) {
-          this.submitType = false
-          return 'error-row'
-        }
-      } else {
-        if (row.row.localCurrency > row.row.remainBudgetMoney) {
-          this.submitType = false
-          return 'error-row'
-        }
-      }
-    },
-    // 显示弹出框前准备
-    showDialog() {
-      this.$emit('viewSpareMoneyGetDate')
-    },
-    // 数据处理
-    viewSpareMoneyGetDate: async function (subData, showType) {
-      if (this.monetaryKey == 4) {
-        //备用金
-
-        let originalCoin = 0
-        let localCurrency = 0
-        // 数据整合
-        for (let i = 0; i < subData.length; i++) {
-          originalCoin += subData[i].originalCoin
-          localCurrency += subData[i].localCurrency
-        }
-
-        let moneydata = await this.getdate()
-        this.tableDate = [
-          {
-            originalCoin: originalCoin,
-            localCurrency: localCurrency,
-            imprestBalance: 0,
-            warningThreshold: 0,
-          },
-        ]
-        if (moneydata) {
-          this.tableDate[0].imprestBalance = parseFloat(
-            this.tableDate[0].imprestBalance *
-              (this.tableDate[0].warningThreshold / 100)
-          ).toFixed(2)
-
-          this.tableDate[0].warningThreshold = moneydata.warningThreshold
-        }
-        this.tableDate[0].remainingAmountAterPurchase = parseFloat(
-          this.tableDate[0].imprestBalance - this.tableDate[0].localCurrency
-        ).toFixed(2)
-
-        if (this.tableDate[0].remainingAmountAterPurchase < 0) {
-          this.submitType = false
-        }
-      } else {
-        //余额
-        if (this.budgetYear) {
-          // let myDate = new Date()
-          // this.year = myDate.getFullYear()
-          this.year = dayjs().format('YYYY')
-        } else {
-          this.year = this.budgetYear.substr(0, 4)
-        }
-
-        for (let i = 0; i < subData.length; i++) {
-          let moneydata = await this.getdate(subData[i].subjectId)
-          subData[i].budgetMoney = parseFloat(moneydata.budgetMoney).toFixed(2)
-          subData[i].remainBudgetMoney = parseFloat(
-            moneydata.remainBudgetMoney
-          ).toFixed(2)
-
-          subData[i].remainingAmountAterPurchase = parseFloat(
-            subData[i].remainBudgetMoney - subData[i].localCurrency
-          ).toFixed(2)
-
-          if (
-            subData[i].budgetMoney <= 0 ||
-            subData[i].remainingAmountAterPurchase <= 0
-          ) {
-            subData[i].remainingAmount = 0
-          } else {
-            subData[i].remainingAmount =
-              subData[i].remainingAmountAterPurchase / subData[i].budgetMoney
-          }
-          if (subData[i].remainingAmount <= 0) {
-            subData[i].remainingAmount = 0
-          }
-
-          if (subData[i].localCurrency > subData[i].remainBudgetMoney) {
-            this.submitType = false
-          }
-        }
-        this.tableDate = subData
-      }
-      if (showType != false) {
-        this.dialogViewSpareMoney = true
-      }
-      return Promise.resolve(this.submitType)
-    },
-    // 数据获取
-    getdate: async function (subId) {},
-
     // 关闭 dialog时 处理文件url 初始化upload组件
     handleClose() {
       this.dialogViewSpareMoney = false

+ 546 - 0
src/views/contractManagement/purchaseContractExamine.vue

@@ -0,0 +1,546 @@
+<!--销售合同-->
+<!--2019年5月30日 20:25:16 by jlx-->
+<template>
+  <div class='container'>
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left">查看合同详情</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          >返回</el-button
+        >
+      </el-col>
+    </el-row>
+   
+    <ws-form
+      ref="deptBudgetList"
+      :rules="mainReportAdd"
+      :model="deptBudgetList"
+    >
+      <div class="remark">
+      <h3>基本信息</h3>
+      <p>注:基本信息和货物信息均为必填项,“*” 标记的条目提交后不可修改。</p>
+    </div>
+        <ws-info-table>
+          <ws-form-item
+            label="合同编号"
+            span="1"
+            prop="seafarerName"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="运输方式"
+            span="1"
+            prop="crtDutyId"
+            key=""
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="买方"
+            span="1"
+            prop="registered"
+            :key=""
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="结算方式"
+            span="1"
+            prop="registered"
+            :key=""
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="卖方"
+            span="1"
+            prop="registered"
+            :key=""
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="货源地"
+            span="1"
+            prop="registered"
+            :key=""
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="买方电话"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="交货地"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+           <ws-form-item
+            label="卖方电话"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="包装方式"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="重量(吨)"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="验收方式"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="短溢装(%)"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="交货日期(起)"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="合同单价(元/吨)"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="交货日期(止)"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="合同总价(元)"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="签订日期"
+            span="1"
+            :prop="!deptBudgetList.add && registered != 1 ? 'birthday' : ''"
+            :key="
+              !deptBudgetList.add || registered != 1
+                ? 'birthday_haveProp'
+                : 'birthday_noProp'
+            "
+          >
+          </ws-form-item>
+        </ws-info-table>
+      </base-card>
+      <!--面试信息-->
+      <div class="remark">
+      <h3>货物信息</h3>
+    </div>
+        <ws-info-table>
+          <ws-form-item
+            label="货名"
+            span="1"
+            prop="dutyId"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="水分(%)<="
+            span="1"
+            prop="intendedShipId"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="品级"
+            span="1"
+            prop="interviewPersons"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="杂质(%)<="
+            span="1"
+            prop="interviewDates"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="容重(克/升)<="
+            span="1"
+            prop="interviewType"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="霉变粒(%)<="
+            span="1"
+            prop="interviewResult"
+            class="result"
+          >
+            
+          </ws-form-item>
+           <ws-form-item
+            label="焦糊粒(%)<="
+            span="1"
+            prop="interviewType"
+          >
+            
+          </ws-form-item>
+          <ws-form-item
+            label="不完善粒(%)<="
+            span="1"
+            prop="interviewResult"
+            class="result"
+          >
+            
+          </ws-form-item>
+        </ws-info-table>
+        <div class="remark">
+          <h3>流程信息</h3>
+        </div>
+        <ws-info-table>
+          <ws-form-item
+            label="合同收入(元)"
+            span="1"
+            prop="dutyId"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="已开发票(元)"
+            span="1"
+            prop="intendedShipId"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="合同外支出(元)"
+            span="1"
+            prop="interviewPersons"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="未开发票(元)"
+            span="1"
+            prop="interviewDates"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="未回款(元)"
+            span="1"
+            prop="interviewType"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="已完成发运量(吨)"
+            span="1"
+            prop="interviewResult"
+            class="result"
+          >
+          </ws-form-item>
+           <ws-form-item
+            label="双章原件回收情况"
+            span="1"
+            prop="interviewType"
+          >
+          </ws-form-item>
+          <ws-form-item
+            label="不完善粒(%)<="
+            span="1"
+            prop="interviewResult"
+            class="result"
+          >
+          </ws-form-item>
+        </ws-info-table>
+        <div class="remark">
+          <h3>备注信息</h3>
+        </div>
+        <ws-info-table>
+          
+        </ws-info-table>
+      </base-card>
+    </ws-form>
+    <div style='text-align:right;padding:10px;'>
+      <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          >关闭</el-button
+        >
+    </div>
+  </div>
+</template>
+<script>
+import { getVesselOne } from '@/model/procurement/basic'
+import { dayjs } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      ruleDeptBudget: [],
+      deptBudgetList: {},
+      mainReportAdd: {},
+    }
+  },
+  created() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.showType = this.isShow
+  },
+  methods: {
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleExamine() {},
+    approve() {},
+    returnsales() {
+      this.$router.push({ path: 'purchaseContract' })
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.el-form {
+  padding: 0 20%;
+}
+.el-form-item {
+  width: 50%;
+}
+
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 10px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 20px 0px;
+}
+.remark h3 {
+  display: inline-block;
+  margin-right: 20px;
+}
+.remark p {
+  display: inline-block;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 10px 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+</style>

+ 168 - 5
src/views/contractManagement/salesContract.vue

@@ -2,6 +2,88 @@
 <!--2019年5月30日 20:25:16 by jlx-->
 <template>
   <div>
+    <BaseHeaderLayout :leftSpan="18">
+      <template slot="left">
+        <ws-date-picker
+          :picker-options="pickerBeginDateBefore"
+          v-model="deptBudgetList.birthday"
+          type="date"
+          default-value="1980-01-01"
+          placeholder="起始日期"
+          format="yyyy-MM-dd"
+          value-format="yyyy-MM-dd"
+        />
+        <span>至</span>
+        <ws-date-picker
+          :picker-options="pickerBeginDateBefore"
+          v-model="deptBudgetList.birthday"
+          type="date"
+          default-value="1980-01-01"
+          placeholder="截止日期"
+          format="yyyy-MM-dd"
+          value-format="yyyy-MM-dd"
+        />
+        <ws-input
+          v-model="deptBudgetList.interviewOpinion"
+          placeholder="可按照合同编号、买方名称、卖方名称进行查找"
+          clearable
+          maxlength="500"
+          type="input"
+          class="findValue"
+        ></ws-input>
+        <!-- v-hasPermission="'procurement.sparepart.directShip'" -->
+        <ws-button
+          type="primary"
+          :disable="checkBtn"
+          @click="enquiry(3)"
+          v-hasPermission="
+            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+          "
+          >查找</ws-button
+        >
+      </template>
+      <template slot="right">
+        <ws-button
+          :disable="checkBtn"
+          @click="enquiry(3)"
+          v-hasPermission="
+            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+          "
+          >导出</ws-button
+        >
+      </template>
+    </BaseHeaderLayout>
+    <div>
+      <el-row>
+        <el-col :span="12">
+          <ul class="taskType clearfix" ref="taskTypeShow">
+            <li
+              v-for="(item, index) in taskTypeList"
+              :key="index"
+              @click="clickSearch(item, index)"
+              :class="{ active: categoryIndex == index }"
+            >
+              <p>
+                <!-- 类型名称 -->
+                {{ item.value }}
+              </p>
+            </li>
+            <div class="clear-both"></div>
+          </ul>
+        </el-col>
+        <el-col :span="12" class="padding-xs">
+          <ws-button
+            type="primary"
+            :disable="checkBtn"
+            @click="enquiry(3)"
+            v-hasPermission="
+              `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
+            "
+            >添加</ws-button
+          >
+        </el-col>
+      </el-row>
+    </div>
     <el-table :data="tableData" style="width: 100%">
       <el-table-column type="index" />
       <el-table-column prop="date" label="合同编号" width="80">
@@ -26,10 +108,7 @@
             @click="handleExamine(scope.row)"
             >查看</el-button
           >
-          <el-button
-            type="primary"
-            size="small"
-            @click="handleUpdate(scope.row)"
+          <el-button type="primary" size="small" @click="handleEdit(scope.row)"
             >编辑</el-button
           >
           <el-button type="danger" size="small" @click="handleDelete(scope.row)"
@@ -75,7 +154,35 @@ export default {
       year: '',
       // 提交类型
       submitType: true,
+      contractForm: {},
+      categoryIndex: 0,
+      rulesVendor: {},
       tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      taskTypeList: [
+        { value: '未完成(默认)' },
+        { value: '已完成' },
+        { value: '待回款' },
+        { value: '全部合同' },
+      ],
+      deptBudgetList: {
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        seafarerName: '',
+        crtDutyId: '',
+        crtDutyName: '',
+        seafarerSexKey: '',
+        mobilePhone: '',
+        birthday: '',
+        dutyId: '',
+        dutyName: '',
+        intendedShipId: '',
+        intendedShipName: '',
+        interviewPersons: '',
+        interviewDates: '',
+        interviewType: '',
+        interviewResult: '1',
+        interviewOpinion: '',
+        aliasName: '',
+      },
     }
   },
   created() {
@@ -89,14 +196,70 @@ export default {
     handleClose() {
       this.dialogViewSpareMoney = false
     },
-    handleExamine() {
+    handleExamine(row) {
       this.$router.push({ path: 'salesContractExamine' })
     },
+    filtlistQuery() {},
+    searchDialog() {},
+    vesselIdSelected() {},
+    seelctShips() {},
+    checkBtn() {},
+    handleEdit(row) {
+      this.$router.push({ path: 'salesContractEdit' })
+    },
     approve() {},
+    listQuery() {},
+    total() {},
+    clearfiltQuery() {},
   },
 }
 </script>
 <style lang="scss" scoped>
+.padding-xs {
+  padding: 15px;
+  text-align: right;
+}
+.clearfix:after {
+  content: '';
+  display: block;
+  clear: both;
+}
+.taskType {
+  width: 100%;
+  background-color: #fff;
+  margin-top: 2px;
+  margin-bottom: 10px;
+  list-style: none;
+  // padding-bottom: 20px;
+  li {
+    float: left;
+    border: 1px solid #6ea0f3;
+    border-radius: 5px;
+    max-width: 190px;
+    padding: 0 5px;
+    text-align: center;
+    margin: 10px 20px;
+    cursor: pointer;
+    font-size: 14px;
+
+    p {
+      margin: 8px 0px;
+      span {
+        color: #e74c3c;
+      }
+    }
+  }
+  li:hover {
+    background-color: #e4eeff;
+    color: #1d6ced;
+  }
+}
+.el-date-editor--date {
+  margin: 0 10px;
+}
+.findValue {
+  margin: 0 10px;
+}
 .button-container {
   display: flex;
   flex-wrap: nowrap;

+ 205 - 0
src/views/contractManagement/salesContractEdit.vue

@@ -0,0 +1,205 @@
+<template>
+  <div>       
+<el-row>
+  <el-col :span="12" >
+      <h2 class="bg-left">修改合同信息</h2>
+      </el-col> 
+  <el-col :span="12" class="bg-right">
+       <el-button class="bg-bottom"
+            type="primary"
+            size="small"
+            @click="returnsales()"
+            >返回</el-button
+          >
+      
+      </el-col>
+</el-row>
+
+  <div class="wenzi">
+      <h3>基本信息</h3><p>注:基本信息和货物信息均为必填项,“*” 标记的条目提交后不可修改。</p>
+  </div>
+  </div>
+  
+     
+  
+
+</template>
+<script>
+import { getVesselOne } from '@/model/procurement/basic'
+import { dayjs } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+    }
+  },
+  created() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.showType = this.isShow
+  },
+  methods: {
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+   returnsales(){
+       this.$router.push({ path: 'salesContract' })
+   }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left{
+    padding-left: 10px;
+}
+.bg-right{   
+      padding-right: 10px; 
+      text-align: right;
+}
+.bg-bottom{
+     margin: 20px 0px; 
+}
+
+
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+ 
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+</style>

+ 15 - 5
src/views/contractManagement/salesContractExamine.vue

@@ -686,12 +686,22 @@
         ruleDeptBudget:[]
       }
     },
-    methods:{
-    }
+    created() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.showType = this.isShow
+  },
+  methods: {
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleExamine() {},
+    approve() {},
   }
-  
-  </script>
-
+}
+</script>
 <style lang="scss" scoped>
 .title h3,.title span{
  display:inline-block;

+ 38 - 28
src/winseaUi/WsFormItem/src/index.vue

@@ -2,20 +2,24 @@
 Rising * @Last Modified time: 2020-01-03 16:36:23 * @Description: WsForm辅助组件
 */
 <template>
-  <el-form-item ref="theInput"
-                :label="label"
-                :rules="rules"
-                :prop="prop"
-                :required="rules ? false : requireFlag"
-                :class="{
+  <el-form-item
+    ref="theInput"
+    :label="label"
+    :rules="rules"
+    :prop="prop"
+    :required="JSON.stringify(rules) == '{}' ? false : requireFlag"
+    :class="{
       showInputToopTip: showInputToopTip,
-      showLableToopTip: showLableToopTip
-    }">
-    <el-tooltip v-if="showInputToopTip"
-                :content="tipContent"
-                placement="top-start"
-                popper-class="popper-class"
-                effect="light">
+      showLableToopTip: showLableToopTip,
+    }"
+  >
+    <el-tooltip
+      v-if="showInputToopTip"
+      :content="tipContent"
+      placement="top-start"
+      popper-class="popper-class"
+      effect="light"
+    >
       <span>{{ tipContent }}</span>
     </el-tooltip>
     <slot v-if="!showInputToopTip"></slot>
@@ -34,15 +38,21 @@ export default {
     // input的标题
     label: {
       type: String,
-      default: null
+      default: null,
+    },
+    rules: {
+      type: Object,
+      default() {
+        return {}
+      },
     },
     // 检验索引key
     prop: {
       type: String,
-      default: ''
-    }
+      default: '',
+    },
   },
-  data () {
+  data() {
     return {
       // 是否显示tip
       showInputToopTip: false,
@@ -52,7 +62,7 @@ export default {
       // 是否必填
       requireFlag: false,
       // tip显示内容
-      tipContent: ''
+      tipContent: '',
       //
       // dictArray: []
     }
@@ -63,9 +73,9 @@ export default {
       this.$nextTick(() => {
         this.autoLableTip()
       })
-    }
+    },
   },
-  mounted () {
+  mounted() {
     // 获取全部的字典
     // let zh_array = sessionStorage.getItem("InterNational_zh_array");
     // if (zh_array) {
@@ -79,14 +89,14 @@ export default {
       this.autoLableTip()
     })
   },
-  updated () {
+  updated() {
     this.initTip()
   },
   methods: {
     // 判断插槽中是否插入标签 如果未插入则认为使用该标签进行反显
     // 不推荐这么做 为了不影响对外API只能读取插槽内容来读取显示的文本
     // 缺点 开发时当插槽内容改变时,tip内容不会改变 需刷新页面
-    initTip () {
+    initTip() {
       // const labelIi18 = this.dictArray.find((item, index) => {
       //   return item.value === this.label;
       // });
@@ -110,7 +120,7 @@ export default {
       }
     },
     // tip自动开关
-    autoInputTip () {
+    autoInputTip() {
       let VDOM = this.$refs['theInput']
       if (VDOM) {
         let inputDOM = VDOM.$el.querySelectorAll('.el-form-item__content')
@@ -126,7 +136,7 @@ export default {
       }
     },
     // tip自动开关
-    autoLableTip () {
+    autoLableTip() {
       let VDOM = this.$refs['theInput']
       if (VDOM) {
         let lableDOM = VDOM.$el.querySelectorAll('.el-form-item__label')
@@ -142,8 +152,8 @@ export default {
           }
         }
       }
-    }
-  }
+    },
+  },
 }
 </script>
 <style lang="scss" scoped>
@@ -170,10 +180,10 @@ export default {
 
 /deep/.el-form-item__content {
   white-space: nowrap;
-  .el-select{
+  .el-select {
     width: 100%;
   }
-  .el-input-number.is-without-controls .el-input__inner{
+  .el-input-number.is-without-controls .el-input__inner {
     text-align: left;
   }
 }